<html><head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>History</title></head>
<body bgcolor="#FFFFDF" link="#009999" vlink="#006666" alink="#006666">
<font face="Arial" size="2"><p align="center"><b><font size="5">History</font></b></p>

<p><b>27th October 2014 : Version 5.31</b></p><blockquote>





- <font color="blue">Fixed</font>: Some compiler and libraries related bugs 

 

</blockquote>
<p><b>23th July 2014 : Version 5.30</b></p><blockquote>





- <font color="green">Added</font>: New "Issue" tool for IDE to build todo/issue lists easily from comments. <br>
- <font color="green">Added</font>: JSON library <br>
- <font color="green">Added</font>: ParseXML(), ComposeXML(), InsertXMLArray/List/Map/Structure(), ExtractXMLArray/List/Map/Structure() to XML lib <br>
- <font color="green">Added</font>: OpenGLGadget() with native opengl commands and constants support for Windows, OSX and Linux <br>
- <font color="green">Added</font>: ExamineRegularExpression() and related commands to process regex matches step by step (with group support) <br>
- <font color="green">Added</font>: ClipOutput(), UnclipOutput(), SetOrigin(), GetOriginX(), GetOriginY() <br>
- <font color="green">Added</font>: GetWindowData(), SetWindowData() <br>
- <font color="green">Added</font>: AllocateStructure(), FreeStructure() <br>
- <font color="green">Added</font>: #PB_Default support to WindowBounds() to reset min/max size <br>
- <font color="green">Added</font>: 'Format' parameter to Read/WriteProgramString(), WriteProgramStringN() and ReadProgramError() <br>
- <font color="green">Added</font>: /PREPROCESS compiler flag to create a big single source with all macros, compilerif and file include resolved. Can be combined with /COMMENTED to get the original source with comments as well. <br>
- <font color="green">Added</font>: Optional '#Server' parameter to NetworkServerEvent() to check events only on a specific server <br>
- <font color="green">Added</font>: #PB_String_NoZero flag support to PokeS() to avoid writing the ending null character <br>
- <font color="green">Added</font>: #PB_Enumeration support for Defined() <br>
- <font color="green">Added</font>: #PB_Explorer_HiddenFiles to show hidden files in the explorer gadgets <br>
- <font color="green">Added</font>: Optional 'Type' parameter to CreateBillboardGroup() <br>
- <font color="green">Added</font>: BillboardGroupCommonDirection(), BillboardGroupCommonUpVector() <br>
- <font color="green">Added</font>: #PB_Entity_MinVelocity and #PB_Entity_ForceVelocity to SetEntityAttribute() <br>
- <font color="green">Added</font>: SetMaterialAttribute() with #PB_Material_DepthCheck and #PB_Material_DepthWrite constants <br>
- <font color="green">Added</font>: #PB_Material_DepthCheck support for GetMaterialAttribute(). <br>
- <font color="green">Added</font>: Engine3DStatus() with these constants: #PB_Engine3D_NbRenderedTriangles, #PB_Engine3D_NbRenderedBatches, #PB_Engine3D_CurrentFPS, #PB_Engine3D_MaximumFPS, #PB_Engine3D_MinimumFPS, #PB_Engine3D_AverageFPS, #PB_Engine3D_ResetFPS <br>
- <font color="green">Added</font>: #PB_Absolute / #PB_Relative support to CameraDirectionX/Y/Z(), CameraX/Y/Z(), EntityX/Y/Z(), LightX/Y/Z(), LightDirectionX/Y/Z(), BillBoardGroupX/Y/Z(), NodeX/Y/Z(), ParticleEmitterX/Y/Z() and FetchOrientation() <br>
- <font color="green">Added</font>: ParticleSpeedFactor(), DisableParticleEmitter() <br>
- <font color="green">Added</font>: GetEntityCollisionMask(), GetEntityCollisionGroup(), SetEntityCollisionFilter() <br>
- <font color="green">Added</font>: WaterHeight(), FreeWater() <br>
- <font color="green">Added</font>: Fully unicode IDE <br>
- <font color="green">Added</font>: Highlighting of repeated occurrences of the currently selected word in the IDE <br>
- <font color="green">Added</font>: Plain-text editing mode to edit non-PB files in the IDE <br>
- <font color="green">Added</font>: 'Issues' IDE tool to collect and display TODO/FIXME markers inside the code <br>
- <font color="green">Added</font>: Ctrl+E and Ctrl+Shift+E shortcut to align/shift comments in a selected code block <br>
- <font color="green">Added</font>: Ctrl+M and Ctrl+Shift+M shortcut to select the current code block (repeated presses select the next code block) <br>
- <font color="green">Added</font>: PopupMenu to IDE error log for clear/copy operation <br>
- <font color="green">Added</font>: %HOME and %PROJECT to IDE tool commandline options, added PB_TOOL_Project to available env vars <br>
- <font color="green">Added</font>: Automatic code indentation can align comments at the end of code lines in the IDE <br>
- <font color="green">Added</font>: AutoComplete remembers last selection for Structure/Module AutoComplete <br>
- <font color="green">Added</font>: Context sensitivity for current module/procedure for variable display and expression eval in the debugger <br>
<br>
- <font color="orange">Changed</font>: FormatXML() with #PB_XML_ReFormat no longer adds newlines inside single-line elements for a more readable output <br>
- <font color="orange">Changed</font>: DeleteElement() now returns the data pointer to the new current element (if any) <br>
- <font color="orange">Changed</font>: SetXMLAttribute() to accept newline characters in attributes (will be encoded as character entities) <br>
- <font color="orange">Changed</font>: Added a mandatory "name" parameter to CreateXMLNode() as some parser needs it at node creation time <br>
- <font color="orange">Changed</font>: The way (X)IncludeFile and IncludeBinary works: it's now relative to the file which contains these statements (which is easier to handle) <br>
- <font color="orange">Changed</font>: #PB_Event_SizeWindow and #PB_Event_MoveWindow are no more realtime on Windows, use BindEvent() to get real time update. It should fixes ugly flickering when realtime resizing on Windows. <br>
- <font color="orange">Changed</font>: DataSection label within Procedure are now local labels. <br>
- <font color="orange">Changed</font>: ASM local label prefix has been changed from "l_" to "ll_" ("ll" for local label), to avoid possible clash with main labels. <br>
- <font color="orange">Changed</font>: #PB_LinkedList constant has been renamed to #PB_List for better consistancy <br>
- <font color="orange">Changed</font>: Removed the "Billboard" parameter from AddBillboard() as it was not used. Now returns the new billboard index. <br>
- <font color="orange">Changed</font>: Updated Scintilla to version 3.4.2 <br>
<br>
- <font color="red">Removed</font>: MaterialDepthWrite() (replaced by SetMaterialAttribute()) <br>
- <font color="red">Removed</font>: CountRenderedTriangles() and Engine3DFrameRate(), replaced by Engine3DStatus() 


 


</blockquote>
<p><b>17th March 2014 : Version 5.22 LTS</b></p><blockquote>





- <font color="blue">Fixed</font>: Some compiler and libraries related bugs 

 

</blockquote>
<p><b>20th November 2013 : Version 5.21 LTS</b></p><blockquote>





- <font color="orange">Changed</font>: 'REQUEST' to 'AUTO' for dialog splitter automatic min size calc (old syntax still supported) <br>
<br>
- <font color="blue">Fixed</font>: Some compiler and libraries related bugs 

 

</blockquote>
<p><b>17th September 2013 : Version 5.20 LTS</b></p><blockquote>





- <font color="green">Added</font>: Module support for the compiler <br>
- <font color="green">Added</font>: Runtime library <br>
- <font color="green">Added</font>: Dialog library <br>
- <font color="green">Added</font>: GTK3 subsystem for Linux <br>
- <font color="green">Added</font>: DirectX11 subsystem for Windows (doesn't not support the 3D engine for now) <br>
- <font color="green">Added</font>: Named enumeration support to allow continuing a previous enumeration <br>
- <font color="green">Added</font>: JoystickName(), JoystickZ() <br>
- <font color="green">Added</font>: Optional #PB_Relative flag to JoystickX/Y/Z() to have more precise values <br>
- <font color="green">Added</font>: Optional pad number to JoystickX/Y/Z() to handle more complex gamepads <br>
- <font color="green">Added</font>: ZoomSprite() now accepts #PB_Default as Width/Height to reset to initial sprite size <br>
- <font color="green">Added</font>: 'Color' and 'Intensity' parameter to DisplayTransparentSprite() <br>
- <font color="green">Added</font>: ClipSprite() now support #PB_Default for individual parameter <br>
- <font color="green">Added</font>: #PB_Sprite_PixelCollision flag to CreateSprite(), LoadSprite() to enable pixel collision <br>
- <font color="green">Added</font>: Zoom support to SpritePixelCollision() and SpriteCollision() <br>
- <font color="green">Added</font>: OpenGL support for SpriteBlending() (warning, it just wraps OpenGL mode, so it can behave different than DirectX) <br>
- <font color="green">Added</font>: 32-bit support for SpriteOutput() for DX and OpenGL <br>
- <font color="green">Added</font>: #PB_EventType_Focus and #PB_EventType_LostFocus support to EditorGadget() <br>
- <font color="green">Added</font>: #PB_EventType_RightClick support to ListViewGadget() <br>
- <font color="green">Added</font>: #PB_EventType_Change support to PanelGadget() and DateGadget() <br>
- <font color="green">Added</font>: #PB_Prototype and #PB_Module support to Defined() <br>
- <font color="green">Added</font>: All Init() functions can be called more than once without issue (like InitSound(), InitNetwork() etc.) <br>
- <font color="green">Added</font>: #PB_FileSystem_Force support to DeleteFile() <br>
- <font color="green">Added</font>: #PB_FileSystem_NoExtension support to GetFilePart() <br>
- <font color="green">Added</font>: Back color parameter to CreateImage() <br>
- <font color="green">Added</font>: #PB_Entity_NbSubEntities to GetEntityAttribute() <br>
- <font color="green">Added</font>: MeshIndexCount(), SetRenderQueue(), FetchEntityMaterial(), GetMeshData(), SetMeshData() <br>
- <font color="green">Added</font>: CPUName(), Un/BindEvent(), Un/BindGadgetEvent(), Un/BindMenuEvent() <br>
- <font color="green">Added</font>: Previous location is displayed when declaring a structure, interface, prototype or procedure twice. <br>
- <font color="green">Added</font>: 2 license files to easy add the needed information when shipping PB programs (see reference documentation) <br>
- <font color="green">Added</font>: Bool() is now evaluated at compile time if the whole expression is constant <br>
- <font color="green">Added</font>: Debugger check for SortStructuredList() and SortList() to ensure the specified list is of correct type <br>
- <font color="green">Added</font>: Linux executables created on new distribution should still work on old linux. <br>
- <font color="green">Added</font>: #PB_EventType_FirstCustomValue for use with PostEvent() <br>
- <font color="green">Added</font>: CameraFollow(), ExamineWorldCollisions(), NextWorldCollision(), FirstWorldCollisionEntity(), SecondWorldCollisionEntity() <br>
- <font color="green">Added</font>: WorldCollisionContact(), WorldCollisionNormal(), WorldCollisionAppliedImpulse() <br>
- <font color="green">Added</font>: BuildMeshTangents(), MeshVertexTangent(), CopyTexture() <br>
- <font color="green">Added</font>: Pitch(), Roll(), Yaw() <br>
- <font color="green">Added</font>: #PB_Gadget_RequiredSize support for GadgetWidth/Height() <br>
- <font color="green">Added</font>: #PB_Entity_LinearSleeping, #PB_Entity_AngularSleeping, #PB_Entity_DeactivationTime, #PB_Entity_IsActive, <br>
- <font color="green">Added</font>: #PB_Entity_AngularVelocityX/Y/Z, #PB_Entity_ScaleX/Y/Z, #PB_Entity_AngularVelocity, #PB_Entity_HasContactResponse for Get/SetEntityAttribute() <br>
<br>
- <font color="#924B72">Optimized</font>: Pixel sprite collision routines are now much faster with DirectX <br>
- <font color="#924B72">Optimized</font>: More peephole optimizations on x64 assembler output <br>
- <font color="#924B72">Optimized</font>: Faster compilation for big programs <br>
- <font color="#924B72">Optimized</font>: Linux build server have been upgraded, now using a better GCC which produce better code. <br>
<br>
- <font color="orange">Changed</font>: SpinGadget() EventType are now #PB_EventType_Up and #PB_EventType_Down instead of -1 and 1. <br>
- <font color="orange">Changed</font>: renamed ZoomSprite3D() to ZoomSprite() <br>
- <font color="orange">Changed</font>: renamed TransformSprite3D() to TransformSprite() <br>
- <font color="orange">Changed</font>: renamed RotateSprite3D() to RotateSprite() <br>
- <font color="orange">Changed</font>: renamed Sprite3DQuality() to SpriteQuality()  <br>
- <font color="orange">Changed</font>: renamed Sprite3DBlending() to SpriteBlending() <br>
- <font color="orange">Changed</font>: renamed the whole 'Module' library to 'Music' <br>
- <font color="orange">Changed</font>: renamed Frame3DGadget() to FrameGadget() <br>
- <font color="orange">Changed</font>: renamed Frame3DGadget3D() to FrameGadget3D() <br>
- <font color="orange">Changed</font>: renamed #PB_Shortcut_Prior to #PB_Shortcut_PageUp and #PB_Shortcut_Next to #PB_Shortcut_PageDown <br>
- <font color="orange">Changed</font>: Packer plugin constant renamed to #PB_PackerPlugin_XXX <br>
- <font color="orange">Changed</font>: RayCollide() now returns the colliding #Entity. <br>
<br>
- <font color="green">Updated</font>: WebGadget() on Windows doesn't needs ATL.dll anymore <br>
- <font color="green">Updated</font>: zlib to 1.2.8 <br>
- <font color="green">Updated</font>: pqlib (PostgreSQL) to 9.2.4 <br>
- <font color="green">Updated</font>: ziplib to 0.11.1 <br>
- <font color="green">Updated</font>: SCNotification scintilla structure <br>
<br>
- <font color="red">Removed</font>: Mozilla ActiveX support for WebGadget() on Windows as the last ActiveX version is way too old (2005) <br>
- <font color="red">Removed</font>: Sprite3D library (merged with regular sprite library) <br>
- <font color="red">Removed</font>: Palette library (outdated) <br>
- <font color="red">Removed</font>: UnPackMemory() -&gt; replaced with UnCompressMemory() <br>
- <font color="red">Removed</font>: RenderMovieFrame() and #PB_Movie_Rendered (outdated) <br>
- <font color="red">Removed</font>: DisplayTranslucentSprite() -&gt; replaced with 'Alpha' parameter for DisplayTransparentSprite() <br>
- <font color="red">Removed</font>: DisplaySolidSprite() -&gt; replaced with 'Color' parameter for DisplayTransparentSprite() <br>
- <font color="red">Removed</font>: DisplayRGBFilter() -&gt; can be replaced with a zoomed sprite with color <br>
- <font color="red">Removed</font>: DisplayShadowSprite() -&gt; can be replaced with DisplayTransparentSprite() with color <br>
- <font color="red">Removed</font>: StartSpecialFX(), StopSpecialFX(), DisplayAlphaSprite(), ChangeAlphaIntensity(), UseBuffer() <br>
- <font color="red">Removed</font>: Carbon subsystem on OS X, it was too old be used with new libs <br>
<br>
- <font color="blue">Fixed</font>: Many bugs <br>

</blockquote>
<p><b>19th March 2013 : Version 5.11</b></p><blockquote>





- <font color="blue">Fixed</font>: Some compiler and libraries related bugs 


 


</blockquote>
<p><b>14th February 2013 : Version 5.10</b></p><blockquote>





- <font color="green">Added</font>: Form designer is now integrated to the IDE ! <br>
- <font color="green">Added</font>: Fully reworked Packer library with ZIP, BriefLZ, 7z (unpacker only), LZMA and JCALG1 (Windows x86 and UncompressMemory() only) support. JCALG1 support has been dropped. Archives formats for BriefLZ have been changed. <br>
- <font color="green">Added</font>: IPv6 support to the network library. Updated IPString(), MakeIPAddress(), GetClientIP(), IPAddressField(), ExamineIPAddress() and NextIPAddress(). added #PB_Network_IPv6 flag to OpenConnection and CreateServer(). Added FreeIP() for v6 IP <br>
- <font color="green">Added</font>: System library: ComputerName(), UserName(), MemoryStatus(), CountCPUs() <br>
- <font color="green">Added</font>: Line continuation feature, with the following operands: ',' '|' '+' And Or XOr <br>
- <font color="green">Added</font>: Constant string comparisons are now handled at compile time, allowing use in CompilerIf for example. <br>
- <font color="green">Added</font>: CocoaMessage() for OS X <br>
- <font color="green">Added</font>: 'Check syntax' to only compile the code without build/running an executable (/CHECK switch or in the IDE compiler menu) <br>
- <font color="green">Added</font>: Array/List/Map parameter support to Interface methods <br>
- <font color="green">Added</font>: Support for dynamic array/list/map support in structure/interface in Residents. <br>
- <font color="green">Added</font>: #PB_Character, #PB_Unicode, #PB_Ascii and #PB_Integer flag support to FillMemory() <br>
- <font color="green">Added</font>: #PB_RegularExpression_NoCase support to CreateRegularExpression() <br>
- <font color="green">Added</font>: EncodeImage() with PNG, JPEG and JPEG2000 support <br>
- <font color="green">Added</font>: #PB_Memory_NoClear support to Re/AllocateMemory() <br>
- <font color="green">Added</font>: ImageFormat() <br>
- <font color="green">Added</font>: #PB_Editor_WordWrap to EditorGadget() <br>
- <font color="green">Added</font>: Multicharacter comparison in StringField() <br>
- <font color="green">Added</font>: NbOccurrences parameter for ReplaceString() <br>
- <font color="green">Added</font>: PostEvent(), EventData() <br>
- <font color="green">Added</font>: return value to SetCurrentDirectory() <br>
- <font color="green">Added</font>: #PB_String_NoCase mode parameter to FindString() <br>
- <font color="green">Added</font>: #PB_Preference_NoSpace and #PB_Preference_GroupSeparator flags for OpenPreferences() and CreatePreferences() <br>
- <font color="green">Added</font>: DatabaseColumnIndex() <br>
- <font color="green">Added</font>: #PB_Cipher_URL and #PB_Cipher_NoPadding for Base64Encoder(), added URL compatibility to Base64Decoder() <br>
- <font color="green">Added</font>: SetGadgetItemImage() for all gadget supporting item gadget image <br>
- <font color="green">Added</font>: #PB_Gadget_ScreenCoordinate and #PB_Gadget_WindowCoordinate flag for GadgetX/Y() <br>
- <font color="green">Added</font>: #PB_File_SharedRead (no effect on Linux/OSX), #PB_File_SharedWrite (no effect on Linux/OSX), #PB_File_Append and #PB_File_NoBuffering file flags. <br>
- <font color="green">Added</font>: #PB_Event_RightClick, #PB_Event_LeftClick and #PB_Event_LeftDoubleClick events <br>
- <font color="green">Added</font>: Optional title parameter to OpenConsole() <br>
- <font color="green">Added</font>: #PB_ScrollArea_ScrollStep added for ScrollAreaGadget() <br>
- <font color="green">Added</font>: #PB_Ignore for ResizeImage() <br>
- <font color="green">Added</font>: Bind a specific IP to CreateNetworkServer() <br>
- <font color="green">Added</font>: Timeout, LocalIP$ and LocalPort parameter to OpenNetworkConnection() <br>
- <font color="green">Added</font>: #PB_NetworkEvent_Disconnect support for NetworkClientEvent() <br>
- <font color="green">Added</font>: #PB_Unicode, #PB_Ascii and #PB_UTF8 support to SendNetworkString() <br>
- <font color="green">Added</font>: #PB_String_MaximumLength attribute for StringGadget() <br>
- <font color="green">Added</font>: #PB_Event_DeactivateWindow support <br>
- <font color="green">Added</font>: #PB_EventType_Change support for EditorGadget() <br>
- <font color="green">Added</font>: #PB_Relative/#PB_Absolute flag for FileSeek() <br>
- <font color="green">Added</font>: 'Offset' and 'Length' parameters to SHA1/MD5/CRC32FileFingerprint() <br>
- <font color="green">Added</font>: GetSoundPosition(), SetSoundPosition(), SoundLength(), PauseSound(), ResumeSound(), SoundStatus(), GetSoundFrequency() <br>
- <font color="green">Added</font>: #PB_All support for SoundVolume() <br>
- <font color="green">Added</font>: SetGadgetItemState() support for ExplorerListGadget() <br>
- <font color="green">Added</font>: InputRequester add close <br>
- <font color="green">Added</font>: InputRequester() added #PB_InputRequester_Password flag <br>
- <font color="green">Added</font>: Random() added optional minimum value <br>
- <font color="green">Added</font>: SetGadgetItemText() for ListIconGadget(): handling of Chr(10) as in AddGadgetItem() <br>
- <font color="green">Added</font>: made OpenWindowedScreen() stretch parameters optional <br>
- <font color="green">Added</font>: ScreenWidth(), ScreenHeight(), ScreenDepth() <br>
- <font color="green">Added</font>: SMTP AUTH support to mail library <br>
- <font color="green">Added</font>: optional parameters to RemoveMailRecipient(), ability to remove all recipients <br>
- <font color="green">Added</font>: ReadString(#File [, Flags [, Length]]) : length and #PB_File_IgnoreEOL support <br>
- <font color="green">Added</font>: #PB_Window_InnerCoordinate support to WindowX/Y() <br>
- <font color="green">Added</font>: #PB_Window_FrameCoordinate support to WindowWidth()/Height() <br>
- <font color="green">Added</font>: #PB_Image_Raised support to ImageGadget() <br>
- <font color="green">Added</font>: Support for FreeXXX(#PB_All) for all free commands <br>
- <font color="green">Added</font>: Compiler Constants: #PB_Compiler_LineNumbering, #PB_Compiler_InlineAssembly, #PB_Compiler_EnableExplicit <br>
- <font color="green">Added</font>: Compiler Constants: #PB_Compiler_ExecutableFormat (with #PB_Compiler_DLL, #PB_Compiler_Console, #PB_Compiler_Executable) <br>
- <font color="green">Added</font>: Compiler Constant: #PB_Compiler_IsIncludeFile, #PB_Compiler_IsMainFile, #PB_Compiler_Filename (filename without path) <br>
- <font color="green">Added</font>: Bool() compiler operator. Boolean operations are now forbidden without Bool(). <br>
- <font color="green">Added</font>: MacroExpandedCount internal keyword <br>
- <font color="green">Added</font>: UndefineMacro <br>
- <font color="green">Added</font>: Now XIncludeFile also take in account the main file, to avoid double inclusion if the main file is included from another file <br>
- <font color="green">Added</font>: TypeOf() for variable, structure and fields <br>
- <font color="green">Added</font>: Defined(Label, #PB_Label) support <br>
- <font color="green">Added</font>: CompilerElseIf <br>
- <font color="green">Added</font>: Local labels <br>
- <font color="green">Added</font>: Define now behave like Global and accept Dim(), NewMap() and NewList() on the same line <br>
- <font color="green">Added</font>: 'Align' keyword support for structure, with a special #PB_Structure_AlignC value to mimic C structures padding <br>
- <font color="green">Added</font>: autocast of numeric values when string are involved, allowing to concatenate string and numeric in constants <br>
- <font color="green">Added</font>: 'CONSTANTLIST' to Compiler interface <br>
- <font color="green">Added</font>: editing history recording in the IDE to recover previous code states and for crash recovery (see File -&gt; Session History) <br>
- <font color="green">Added</font>: AffectedDatabaseRows(), CheckDatabaseNull() to database library <br>
- <font color="green">Added</font>: new Text3D library <br>
- <font color="green">Added</font>: 'Mode' optional parameter to all ...Yaw/Roll/Pitch() functions <br>
- <font color="green">Added</font>: 'Type' and 'Mode' optional parameter to CreateMesh() <br>
- <font color="green">Added</font>: RayCast(), MouseRayCast(), NormalX(), NormalY(), NormalZ() <br>
- <font color="green">Added</font>: UpdateMesh(), EnableManualEntityBoneControl(), MoveEntityBone(), RotateEntityBone(), MeshIndex() <br>
- <font color="green">Added</font>: 'Type' optional parameter to AddSubMesh() <br>
- <font color="green">Added</font>: 'Type' parameter to FinishMesh() <br>
- <font color="green">Added</font>: ScaleNode(), GetMaterialColor(), GetMaterialAttribute(), ConvertLocalToWorldPosition(), ConvertWorldToLocalPosition() <br>
- <font color="green">Added</font>: MaterialCullingMode(), FetchOrientation(), SetOrientation(), GetX(), GetY(), GetZ(), GetW(), GetLightColor() <br>
- <font color="green">Added</font>: AttachEntityObject(): bone name can be empty, so the object is added directly to the entity <br>
<br>
- <font color="orange">Changed</font>: renamed SoundFrequency() to SetSoundFrequency() <br>
- <font color="orange">Changed</font>: renamed AddMeshVertex() to MeshVertexPosition() <br>
- <font color="orange">Changed</font>: renamed LightColor() to SetLightColor() <br>
- <font color="orange">Changed</font>: removed all MaterialXXXXColor() replaced by SetMaterialColor() <br>
- <font color="orange">Changed</font>: removed all XXXXLocate() replaced by #PB_Absolute flag for MoveXXXX() commands <br>
- <font color="orange">Changed</font>: removed ResizeEntity(), replaced by #PB_Absolute flag for ScaleEntity() command, done also for ScaleNode() and ScaleText3D()<br>
- <font color="orange">Changed</font>: replaced #PB_Sort_&lt;Type&gt; with #PB_&lt;Type&gt; to avoid possible errors <br>
- <font color="orange">Changed</font>: disallow native type for pointers <br>
- <font color="orange">Changed</font>: StrF/D(), trailing zeros are now automatically removed if no decimals are specified <br>
<br>
- <font color="green">Updated</font>: OGRE core has been updated to 1.8.2 <br>
- <font color="green">Updated</font>: SQLite updated to 3.7.15.2 <br>
- <font color="green">Updated</font>: User-guide: new chapters about dynamic numbering and handling multiple windows added by spikey <br>
<br>
- <font color="red">Removed</font>: SendNetworkFile(), ReceiveNetworkFile(), #PB_NetworkEvent_File to avoid possible security hole <br>
- <font color="red">Removed</font>: DirectX7 and NT4 subsystem on Windows <br>
- <font color="red">Removed</font>: SDL subsystem on Linux <br>
- <font color="red">Removed</font>: PowerPC version for OS X <br>
<br>
- <font color="#924B72">Optimized</font>: FindString() is up to twice as fast <br>
<br>
- <font color="blue">Fixed</font>: Many bugs <br>


</blockquote>
<p><b>5th November 2012 : Version 5.00</b></p><blockquote>





- <font color="green">Added</font>: Cocoa support on OS X (now the default toolkit) <br>
- <font color="green">Added</font>: 64-bit version of PureBasic for OS X <br>
- <font color="green">Added</font>: Brand new Form Designer, for Windows, Linux and OS X <br>
- <font color="green">Added</font>: Carbon subsystem for PowerPC and x86 version of PureBasic <br>
- <font color="green">Added</font>: Multi-dimensional arrays in structure support <br>
- <font color="green">Added</font>: InitScintilla() on Linux and OS X avoid compilation issues <br>
- <font color="green">Added</font>: #PB_Window_NoActivate flag to OpenWindow() and HideWindow() <br>
- <font color="green">Added</font>: #PB_EventType_RightClick support ScintillaGadget() <br>
- <font color="green">Added</font>: Favorites section to the explorer tool (IDE) <br>
- <font color="green">Added</font>: Trigger for custom tools when a new source file is created (IDE) <br>
- <font color="green">Added</font>: SetWindowCallback() support to OS X to have callback events  <br>
- <font color="green">Added</font>: partial thread-safety to GTK (Linux) <br>
- <font color="green">Added</font>: SpritePixelCollision() support for OS X and Linux <br>
<br>
- <font color="green">Updated</font>: Scintilla updated to 3.2.2 <br>
- <font color="green">Updated</font>: Expat updated to 2.1.0 <br>
- <font color="green">Updated</font>: libjpeg updated to 8.0d <br>
- <font color="green">Updated</font>: libpng updated to 1.5.12 <br>
- <font color="green">Updated</font>: Ogre to 1.8.0, bullet to 2.80, hydrax to 0.5.4, CEGUI to 0.7.7 <br>
- <font color="green">Updated</font>: ModPlug lib update to 0.8.8.4 <br>
- <font color="green">Updated</font>: Use of VC++ 2010 instead of VC++ 2005 to compile the Windows libraries (32-bit and 64-bit), resulting of better optimized code <br>
- <font color="green">Updated</font>: French documentation has been greatly updated/enhanced, thanks to Jean R. VIALE. <br>
<br>
- <font color="orange">Changed</font>: SetModulePosition() is now in milliseconds, no more in pattern <br>
<br>
- <font color="blue">Fixed</font>: Many bugs <br>
<br>
<b>3D Engine:</b> <br>
- <font color="green">Added</font>: EntityAnimation library <br>
- <font color="green">Added</font>: NodeAnimation library <br>
- <font color="green">Added</font>: VertexAnimation library <br>
- <font color="green">Added</font>: Spline library <br>
- <font color="green">Added</font>: CG Toolkit support for the 3D engine (both DirectX and OpenGL), trough InitEngine3D() <br>
- <font color="green">Added</font>: optional 'Mode' parameter to  InitEngine3D() <br>
- <font color="green">Added</font>: 'PickMask' parameter to MousePick() and CreateEntity() <br>
- <font color="green">Added</font>: RenderWorld() now returns 'TimeSinceLastFrame', in milliseconds <br>
- <font color="green">Added</font>: SkyBox() and SkyDome() now supports Fog() <br>
- <font color="green">Added</font>: 'Color' and 'TextureSize' parameters to WorldShadows() <br>
- <font color="green">Added</font>: #PB_World_UnderWater and #PB_World_WaterGodRays flags to CreateWater() <br>
- <font color="green">Added</font>: RayPick(), CameraViewWidth(), CameraViewHeight(), CameraViewX(), CameraViewY(), CameraDirection()  <br>
- <font color="green">Added</font>: CameraDirectionX/Y/Z(), SetCameraFixedYawAxis() <br><br>
- <font color="green">Added</font>: optional 'IsActive' parameter to render to texture for CreateCamera() <br>
- <font color="green">Added</font>: ScaleMaterial(), MaterialFog(), ReloadMaterial(), ResetMaterial(), NodeFixedYawAxis() <br>
- <font color="green">Added</font>: optional 'TextureCoordinateIndex' parameter to AddMaterialLayer() <br>
- <font color="green">Added</font>: #PB_Material_Anisotropic support to MaterialFilteringMode() <br>
- <font color="green">Added</font>: #PB_Default support as #Material to set the default settings for materials. <br>
- <font color="green">Added</font>: #PB_Material_Wireframe, #PB_Material_Point and #PB_Material_Solid to MaterialShadingMode() <br>
- <font color="green">Added</font>: SoundListenerLocate() <br>
- <font color="green">Added</font>: Optional DirectionX/Y/Z parameter to NodeLookAt() <br>
- <font color="green">Added</font>: optional 'Mode' parameter to MoveLight(), MoveEntity() and MoveNode() <br>
- <font color="green">Added</font>: CreateTexture() now handle alpha textures as well <br>
- <font color="green">Added</font>: #PB_Entity_Wireframe, #PB_Entity_Solid, #PB_Entity_Point and #PB_Entity_DisplaySkeleton to EntityRenderMode() <br>
- <font color="green">Added</font>: FreeEntityJoints(), AttachEntityObject(), DetachEntityObject(), EntityBoneX/Y/Z() <br>
- <font color="green">Added</font>: EntityBonePitch(), EntityBoneRoll(), EntityBoneYaw(), EntityFixedYawAxis() <br>
- <font color="green">Added</font>: DirectionX/Y/Z optional parameters to EntityLookAt() <br>
- <font color="green">Added</font>: EntityVelocity(), EntityAngularFactor(), EntityLinearFactor(), EntityCustomParameter(), EntityParentNode() <br>
- <font color="green">Added</font>: EntityBoundingBoxX/Y/Z(), DisableEntityBody() <br>
- <font color="green">Added</font>: #PB_Entity_VelocityX/Y/Z, #PB_Entity_MassCenterX/Y/Z, #PB_Entity_MaxVelocity to Get/SetEntityAttribute() <br>
- <font color="green">Added</font>: LightAttenuation(), LightX/Y/Z(), LightDirection(), LightDirectionX/Y/Z() <br>
- <font color="green">Added</font>: RotateLight(), LightPitch(), LightYaw(), LightRoll() <br>
- <font color="green">Added</font>: GetScriptParticle(), CreateRenderTexture(), UpdateRenderTexture(), SaveRenderTexture() <br>
- <font color="green">Added</font>: CreateCubeMapTexture(), EntityCubeMapTexture() <br>
- <font color="green">Added</font>: HideEffect() now handle ribbon as well <br>
- <font color="green">Added</font>: EffectID(), RibbonEffectWidth(), AttachRibbonEffect(), DetachRibbonEffect(), CreateLensFlareEffect(), LensFlareEffectColor() <br>
- <font color="green">Added</font>: EnableHingeJointAngularMotor() <br>
- <font color="green">Added</font>: Joint parameter for ConeTwistJoint(), HingeJoint(), PointJoint(), SliderJoint() <br>
- <font color="green">Added</font>: #PB_HingeJoint_LowerLimit and #PB_HingeJoint_UpperLimit to Get/SetJointAttribute() <br>
- <font color="green">Added</font>: Optional 'Pitch', 'Yaw', 'Roll' parameters to AddStaticGeometryEntity() <br>
- <font color="green">Added</font>: FreeTerrain(), SetupTerrains(), CreateTerrain(), TerrainPhysicBody(), DefineTerrainTile() <br>
- <font color="green">Added</font>: AddTerrainTexture(), BuildTerrain(), TerrainLocate(), TerrainHeight(), TerrainTileHeightAtPosition() <br>
- <font color="green">Added</font>: TerrainTilePointX/Y(), TerrainTileSize(), GetTerrainTileHeightAtPoint(), SetTerrainTileHeightAtPoint() <br>
- <font color="green">Added</font>: UpdateTerrain(), TerrainTileLayerMapSize(), GetTerrainTileLayerBlend(), SetTerrainTileLayerBlend() <br>
- <font color="green">Added</font>: UpdateTerrainTileLayerBlend(), TerrainMousePick(), SaveTerrain(), TerrainRenderMode() <br>
- <font color="green">Added</font>: special key handling to InputEvent3D() <br>
<br>
- <font color="orange">Changed</font>: CameraLookAt() doesn't change the direction anymore <br>
- <font color="orange">Changed</font>: Attach/DetachNodeObject() removed the 'type' object <br>
- <font color="orange">Changed</font>: 'InitialWidth' parameter has been removed for CreateRibbonEffect() <br>
<br>
- <font color="red">Removed</font>: AnimateEntity() (replaced with Start/StopEntityAnimation()) <br>
- <font color="red">Removed</font>: #PB_Entity_Wireframe, #PB_Entity_Point and #PB_Entity_Solid to EntityRenderMode() <br>
- <font color="red">Removed</font>: CheckEntityCollision(), NextWorldCollision(), FirstWorldCollisionEntity(), SecondWorldCollisionEntity() <br>


</blockquote>
<p><b>21th May 2012 : Version 4.61</b></p><blockquote>





- <font color="green">Added</font>: up-to-date VisualC SDK for Windows to create PureLibraries <br>
- <font color="green">Added</font>: resource support for Win9x <br>
- <font color="green">Added</font>: new User-Guide (PureBasic introduction) included in the reference manual <br>
<br>
- <font color="green">Updated</font>: FASM version (1.69.35) <br>
- <font color="green">Updated</font>: SQLite version (3.7.9) <br>
- <font color="green">Updated</font>: PCRE version (8.30) <br>
<br>
- <font color="orange">Changed</font>: OpenGL subsystem is now default on Linux (a new 'sdl' subsystem has appear) <br>
<br>
- <font color="blue">Fixed</font>: 3D examples for Linux <br>
- <font color="blue">Fixed</font>: WinAPI 64-bit residents (by Danilo) <br>
- <font color="blue">Fixed</font>: Quite some bugs in compiler and libraries <br>


</blockquote>
<p><b>7th November 2011 : Version 4.60</b></p><blockquote>





- <font color="green">Added</font>: a brand new '3D' example folder <br>
- <font color="green">Added</font>: 'Joint' library <br>
- <font color="green">Added</font>: 'SpecialEffect' library <br>
- <font color="green">Added</font>: 'StaticGeometry' library <br>
- <font color="green">Added</font>: CameraPitch(), CameraRoll(), CameraYaw(), SwitchCamera() <br>
- <font color="green">Added</font>: ApplyEntityForce(), ApplyEntityImpulse(), EntityPitch(), EntityRoll(), EntityYaw() <br>
- <font color="green">Added</font>: GetEntityAttribute(), GetEntityMaterial(), SetEntityAttribute(), SetEntityMaterial() <br>
- <font color="green">Added</font>: LightDiffuseColor(), SpotLightRange(), LightLookAt(), DisableLightShadows() <br>
- <font color="green">Added</font>: MaterialDepthWrite(), MaterialSelfIlluminationColor(), MaterialShininess(), GetScriptMaterial() <br>
- <font color="green">Added</font>: CreateLine3D(), CreateCube(), CreateSphere(), CreateCylinder(), CreatePlane()  <br>
- <font color="green">Added</font>: MeshVertexCount(), UpdateMeshBoundingBox(), MeshRadius(), AddMeshVertex() <br>
- <font color="green">Added</font>: MeshVertexNormal(), MeshVertexColor(), AddSubMesh(), BuildMeshShadowVolume() <br>
- <font color="green">Added</font>: MeshVertexTextureCoordinate(), AddMeshFace(), FinishMesh(), NormalizeMesh()  <br>
- <font color="green">Added</font>: SaveMesh(), SetMeshMaterial(), SubMeshCount(), TransformMesh() <br>
- <font color="green">Added</font>: NodePitch(), NodeRoll(), NodeYaw(), GetScriptTexture(), TextureOutput() <br>
- <font color="green">Added</font>: EntityCollide(), RayCollide <br>
- <font color="green">Added</font>: OpenGL renderer to the 3D library on Windows, when using the OpenGL subsystem <br>
- <font color="green">Added</font>: CanvasGadget(), CanvasOutput() <br>
- <font color="green">Added</font>: SetGadgetItemData() for PanelGadget <br>
- <font color="green">Added</font>: MoveElement(), MergeLists(), SplitList() <br>
- <font color="green">Added</font>: RandomizeList(), RandomizeArray(), DoubleClickTime() <br>
- <font color="green">Added</font>: PushListPosition(), PopListPosition(), PushMapPosition(), PopMapPosition() <br>
- <font color="green">Added</font>: ImageID parameter to OpenSubMenu() <br>
- <font color="green">Added</font>: #PB_ListIcon_ThreeState and #PB_ListIcon_Inbetween <br>
- <font color="green">Added</font>: #PB_Tree_ThreeState and #PB_Tree_Inbetween <br>
- <font color="green">Added</font>: crossplatform ComboBox events <br>
- <font color="green">Added</font>: 'DeclareC' keyword for completeness <br>
<br>
- <font color="orange">Changed</font>: FindString() 'StartPosition' parameter to be optional <br>
- <font color="orange">Changed</font>: WebGadget to use WebKitGtk on Linux <br>
- <font color="orange">Changed</font>: ContainerGadget with #PB_Container_Borderless to no longer add a 2px invisible border on Linux <br>
- <font color="orange">Changed</font>: EntityPhysicBody(), CreateLight(), RenderWorld(), ShowGUI(), WorldShadows() <br>
- <font color="orange">Changed</font>: EntityMaterial() to SetEntityMaterial() <br>
<br>
- <font color="red">Removed</font>: Get/SetEntityMass(), Get/SetEntityFriction() <br>
- <font color="red">Removed</font>: SetMeshData() <br>
<br>
- <font color="blue">Fixed</font>: Many bugs <br>
<br>
<b>IDE:</b> <br>
- <font color="green">Added</font>: IDE options for command-line project building <br>
- <font color="green">Added</font>: monitoring of files for changes on disk while they are open in the IDE <br>
- <font color="green">Added</font>: FilePanel custom implementation with Drag &amp; Drop, Dropdown menu, scrolling also on OSX <br>
- <font color="green">Added</font>: Diff tool for directories/files <br>
- <font color="green">Added</font>: Html help viewer for Linux/OSX <br>
- <font color="green">Added</font>: Help viewer in toolspanel <br>
- <font color="green">Added</font>: new Color Picker tool <br>
- <font color="green">Added</font>: enabled font selection in IDE for OSX <br>
- <font color="green">Added</font>: ProjectPanel now remembers node expanded states <br>
<br>
<b>Debugger:</b> <br>
- <font color="green">Added</font>: maximize button to all debugger windows <br>
- <font color="green">Added</font>: all IsXxx() and XxxID() functions to the expression parser (for data breakpoints) <br>


</blockquote>
<p><b>8th September 2010 : Version 4.51</b></p><blockquote>





- <font color="blue">Fixed</font>: Quite some compiler and libraries related bugs 


 


</blockquote>
<p><b>7th June 2010 : Version 4.50</b></p><blockquote>





- <font color="green">Added</font>: Support for Array, List, Map inside structures <br>
- <font color="green">Added</font>: CopyList(), CopyMap(), CopyArray() <br>
- <font color="green">Added</font>: FreeList(), FreeMap(), FreeArray() <br>
- <font color="green">Added</font>: CopyStructure(), InitializeStructure() <br>
- <font color="green">Added</font>: Volume support to PlaySound() <br>
- <font color="green">Added</font>: Depth parameter to SaveImage() <br>
- <font color="green">Added</font>: ImageDepth() flag to get the original or current image depth <br>
- <font color="green">Added</font>: #PB_Image_Transparent flag for CreateImage() <br>
- <font color="green">Added</font>: 32-bit support to TGA image decoder <br>
- <font color="green">Added</font>: RoundBox(), AbortFTPFile(), RandomData() <br>
- <font color="green">Added</font>: #PB_2DDrawing_AllChannels mode for DrawingMode() <br>
- <font color="green">Added</font>: Image support for ComboBoxGadget() <br>
- <font color="green">Added</font>: Graphical console functions to Linux <br>
- <font color="green">Added</font>: Large file support to File library on Linux/OSX <br>
- <font color="green">Added</font>: CryptRandom(), CryptRandomData(), OpenCryptRandom(), CloseCryptRandom() <br>
- <font color="green">Added</font>: Many math functions: Exp(), ATan2(), Radian(), Degree(), [A]CosH(), [A]SinH(), [A]TanH(), IsNaN(), IsInfinity(), NaN(), Infinity(), Sign() <br>
- <font color="green">Added</font>: 'Debugger' Library to control some debugger actions from code <br>
<br>
- <font color="orange">Changed</font>: The Image library now keeps images internally in 24-bit or 32-bit (loading and saving works with other bit depths) <br>
<br>
- <font color="blue">Fixed</font>: Quite some bugs in libraries and in the compiler <br>
<br>
<b>IDE/Debugger:</b> <br>
- <font color="green">Added</font>: Keyword underline for Break, Continue, ProcedureReturn <br>
- <font color="green">Added</font>: StatusBar help for prototypes and interfaces <br>
- <font color="green">Added</font>: Keyword sensitive indentation (block mode is still available) <br>
- <font color="green">Added</font>: "Format indentation" option in the edit menu <br>
- <font color="green">Added</font>: Indentation guides and whitespace options <br>
- <font color="green">Added</font>: The ability to select multiple compilers in the compiler options <br>
- <font color="green">Added</font>: Purifier tool for the debugger <br>
- <font color="green">Added</font>: Full debugger compatibility between all OS and processors <br>
- <font color="green">Added</font>: Network debugging for the standalone debugger <br>
- <font color="green">Added</font>: Data breakpoints for the debugger <br>
- <font color="green">Added</font>: Support for structured items in the 'View Array/List/Map' tab of the Variable Viewer <br>
<br>
- <font color="orange">Changed</font>: The Array, List or Map name in the Variable viewer should be entered with a "()" now to display their elements. 


 


</blockquote>
<p><b>1st February 2010 : Version 4.41</b></p><blockquote>





- <font color="blue">Fixed</font>: Quite some compiler and libraries related bugs 


 


</blockquote>
<p><b>1st December 2009 : Version 4.40</b></p><blockquote>





- <font color="green">Added</font>: Native Linux x64 support <br>
- <font color="green">Added</font>: Built-in Map library for hash tables <br>
- <font color="green">Added</font>: 'Threaded' Keyword for thread-local variables <br>
- <font color="green">Added</font>: Structure assignment copies the structure (a.point = b.point) <br>
- <font color="green">Added</font>: ClearStructure() <br>
- <font color="green">Added</font>: AESEncoder(), AESDecoder(), StartAESCipher(), AddCipherBuffer(), FinishCipher() <br>
- <font color="green">Added</font>: Dylib support for OS X <br>
- <font color="green">Added</font>: Joystick library for OS X <br>
- <font color="green">Added</font>: Systray library for OS X <br>
- <font color="green">Added</font>: Trim/LTrim/RTrim() got an optional character to trim <br>
- <font color="green">Added</font>: #PB_Function, #PB_OSFunction, #PB_Map to Defined() <br>
- <font color="green">Added</font>: ReverseString(), InsertString(), RemoveString() <br>
- <font color="green">Added</font>: Blob support to databases <br>
- <font color="green">Added</font>: UsePostgreSQLDatabase(): native PostgreSQL support <br>
- <font color="green">Added</font>: Peephole optimizer to 64-bit versions to produce better code <br>
- <font color="green">Added</font>: '.a' (ascii) and '.u' (unicode) native type to provide native unsigned byte and word. <br>
- <font color="green">Added</font>: FileBuffersSize() - #PB_Default support change the buffersize to the next opened files <br>
- <font color="green">Added</font>: #PB_URL_Protocol to Get/SetURLPart() <br>
- <font color="green">Added</font>: #PB_Shadow_TextureAdditive <br>
- <font color="green">Added</font>: FTPDirectoryEntryRaw(), FillMemory() <br>
- <font color="green">Added</font>: Global, Protected, Threaded, Shared and Static now accept a type to affect all default variable declaration. <br>
- <font color="green">Added</font>: AddWindowTimer(), RemoveWindowTimer(), EventTimer() <br>
- <font color="green">Added</font>: #PB_Window_Tool to create tool windows <br>
- <font color="green">Added</font>: ShortcutGadget(), StatusBarProgress() <br>
- <font color="green">Added</font>: StatusBarImage() now supports normal images (not just icons) <br>
- <font color="green">Added</font>: #PB_Checkbox_ThreeState flag to create a 3 state checkbox <br>
- <font color="green">Added</font>: CreateImageMenu(), CreatePopupImageMenu() for OSX <br>
- <font color="green">Added</font>: Full alphachannel support for all GUI elements that display images <br>
- <font color="green">Added</font>: Full alphachannel support for Image lib <br>
- <font color="green">Added</font>: New drawing modes for 2DDrawing in ImageOutput() <br>
- <font color="green">Added</font>: LinearGradient(), BoxedGradient(), CircularGradient(), EllipticalGradient(), ConicalGradient() <br>
- <font color="green">Added</font>: CustomGradient(), GradientColor(), ResetGradientColors(), CustomFilterCallback() <br>
- <font color="green">Added</font>: DrawAlphaImage() for all outputs on all OS <br>
- <font color="green">Added</font>: DrawAlphaImage() has a new transparency parameter and can be used to draw non-alpha images part transparent <br>
- <font color="green">Added</font>: QuickDraw subsystem for WindowOutput() on OSX <br>
- <font color="green">Added</font>: Sprite/ScreenOutput for OpenGL (all OS) <br>
- <font color="green">Added</font>: DrawingFont() works for SDL output <br>
- <font color="green">Added</font>: OutputWidth(), OutputHeight(), OutputDepth() for 2DDrawing <br>
- <font color="green">Added</font>: GrabDrawingImage(), DrawRotatedText(), RGBA(), Alpha(), AlphaBlend() <br>
- <font color="green">Added</font>: #PB_PixelFormat_ReversedY - for pixel buffers that are stored upside-down (Windows ImageOutput or OpenGL) <br>
- <font color="green">Added</font>: #PB_OS_Windows_7, #PB_OS_MacOSX_10_6 for OSVersion() <br>
<br>
- <font color="green">Updated</font>: OGRE to 1.6.2, sqlite 3.6.14.2, PCRE to 7.9 <br>
<br>
- <font color="orange">Changed</font>: Call(C)Function(Fast) parameters have been changed from 'Any' to 'Integer'. <br>
- <font color="orange">Changed</font>: OpenScreen() now accepts FlipMode and RefreshRate <br>
- <font color="orange">Changed</font>: FlipBuffers() doesn't take an optional parameter anymore <br>
<br>
- <font color="red">Removed</font>: #PB_Image_DisplayFormat is now deprecated (value set to 24 to have 24-bit as default) <br>
- <font color="red">Removed</font>: SetRefreshRate() has been removed, the parameter is in OpenScreen() now <br>
<br>
- <font color="blue">Fixed</font>: Image Decoders are now thread-safe <br>
- <font color="blue">Fixed</font>: Quite some bugs in libraries and in the compiler <br>
<br>
<b>PureBasic IDE:</b> <br>
- <font color="green">Added</font>: Full project management <br>
- <font color="green">Added</font>: Highlight matching keyword for keyword under cursor (tied to BraceMatching color setting) <br>
- <font color="green">Added</font>: Edit-&gt;Goto matching keyword <br>
- <font color="green">Added</font>: PB_TOOL_Preferences Environment variable for IDE tools <br>
- <font color="green">Added</font>: Theme management to customize menu icons <br>
- <font color="green">Added</font>: New 'Silk' theme based on the Iconsset by Mark James <br>
- <font color="green">Added</font>: Autocomplete scans implicit variable declaration and respects scope <br>
- <font color="green">Added</font>: Structure item autocomplete <br>
<br>
- <font color="orange">Changed</font>: moved encoding/newline setting from compiler options to file menu <br>
<br>
<b>PureBasic Debugger:</b> <br>
- <font color="#924B72">Optimized</font>: greatly improved VariableViewer update speeds <br>
- <font color="green">Added</font>: progressbar display if VariableViewer update takes long <br>
- <font color="green">Added</font>: column sort capability to VariableViewer (Windows only) 


 


</blockquote>
<p><b>3rd June 2009 : Version 4.31</b></p><blockquote>





- <font color="blue">Fixed</font>: Many compiler and libraries related bugs 


 


</blockquote>
<p><b>16th December 2008 : Version 4.30</b></p><blockquote>





- <font color="green">Added</font>: Full 64-bit version of PureBasic (Windows) <br>
- <font color="green">Added</font>: MacOS X x86 support <br>
- <font color="green">Added</font>: 'JPEG 2000' library <br>
- <font color="green">Added</font>: 'Node' library <br>
- <font color="green">Added</font>: 'Gadget3D' library <br>
- <font color="green">Added</font>: 'Window3D' library <br>
- <font color="green">Added</font>: 'Sound3D' library <br>
- <font color="green">Added</font>: Full unicode support to the engine3d <br>
- <font color="green">Added</font>: MacOS X support for engine3d <br>
- <font color="green">Added</font>: Absolute/relative rotation for all engine3d rotate commands <br>
- <font color="green">Added</font>: Absolute move for engine3d physic body <br>
- <font color="green">Added</font>: EntityID(), EntityLookAt() <br>
- <font color="green">Added</font>: CameraProjectionX(), CameraProjectionY(), WorldDebug(), Sun() <br>
- <font color="green">Added</font>: MousePick(), PointPick(), PickX/Y/Z(), CreateWater(), AntialiasingMode() <br>
- <font color="green">Added</font>: CatchModule(), ArraySize(), WindowBounds(), DesktopX(), DesktopY() <br>
- <font color="green">Added</font>: FinishDatabaseQuery(), DatabaseID() <br>
- <font color="green">Added</font>: CreateSemaphore(), FreeSemaphore(), SignalSemaphore(), WaitSemaphore(), TrySemaphore() <br>
- <font color="green">Added</font>: '.i' native type for 32/64-bit integer size <br>
- <font color="green">Added</font>: Read/WriteInteger(), Read/WritePreferenceInteger(), PeekI(), PokeI() <br>
- <font color="green">Added</font>: Language support for compiler and debugger <br>
- <font color="green">Added</font>: Style parameter to FontRequester() <br>
- <font color="green">Added</font>: Support for 'And/Or' in CompilerIf statements <br>
- <font color="green">Added</font>: #PB_Event_MinimizeWindow, #PB_Event_MaximizeWindow, #PB_Event_RestoreWindow <br>
- <font color="green">Added</font>: #PB_Ignore support to AddStatusBarField() <br>
- <font color="green">Added</font>: #PB_Explorer_DisplayMode to ExplorerListGadget() <br>
- <font color="green">Added</font>: Multiple joystick support <br>
- <font color="green">Added</font>: #PB_Compiler_FilePath compiler constant <br>
<br>
- <font color="#924B72">Enhanced</font>: Major rework of OnError library (crossplatform) <br>
- <font color="#924B72">Enhanced</font>: InitScintilla(), parameter is now optional <br>
- <font color="#924B72">Enhanced</font>: Complete debugger rewrite for support of the new platforms <br>
<br>
- <font color="#924B72">Optimized</font>: XML library to handle very big files quickly <br>
- <font color="#924B72">Optimized</font>: LinkedList library to use memory efficiently <br>
<br>
- <font color="orange">Changed</font>: 'Read' keyword now requires a type (Read.l, Read.q etc.) to avoid 64-bit migration problems <br>
- <font color="orange">Changed</font>: CountList() to ListSize() <br>
- <font color="orange">Changed</font>: ClearGadgetItemList() to ClearGadgetItems() <br>
- <font color="orange">Changed</font>: CameraProjection() to CameraProjectionMode() <br>
- <font color="orange">Changed</font>: AddElement() and such now return a pointer to the start of data <br>
- <font color="orange">Changed</font>: ComboBoxGadget() height is now the real gadget height <br>
- <font color="orange">Changed</font>: #Long, #Byte, #Word etc. to #PB_Long, #PB_Byte, #PB_Word etc. for consistency <br>
- <font color="orange">Changed</font>: RotateEntity(), RotateCamera() and RotateBillboard() x,y rotation axis <br>
- <font color="orange">Changed</font>: CameraFOV() angle from radian to degree <br>
- <font color="orange">Changed</font>: Array and list parameter now requires the 'List' or 'Array' keyword <br>
<br>
- <font color="red">Removed</font>: StrQ(), HexQ(), BinQ(), ValQ() <br>
- <font color="red">Removed</font>: ChangeListIconGadgetDisplay(), replaced by a gadget attribute <br>
- <font color="red">Removed</font>: ButtonImageGadget() backward compatibility <br>
- <font color="red">Removed</font>: CreateGadgetList(), now automatically done in OpenWindow() <br>
- <font color="red">Removed</font>: CopyTexture(), TextureOutput() <br>
- <font color="red">Removed</font>: Removed CPU monitor from the IDE, as all OS provide the same functionality <br>
<br>
- <font color="blue">Fixed</font>: DX9 subsystem on Windows <br>
- <font color="blue">Fixed</font>: Many compiler and libraries related bugs 


 


</blockquote>
<p><b>23rd May 2008 : Version 4.20</b></p><blockquote>





- <font color="green">Added</font>: Mail library <br>
- <font color="green">Added</font>: Ftp library <br>
- <font color="green">Added</font>: RegularExpression library <br>
- <font color="green">Added</font>: Http library <br>
- <font color="green">Added</font>: SerialPort library <br>
- <font color="green">Added</font>: FLAC library <br>
- <font color="green">Added</font>: SQLite library <br>
- <font color="green">Added</font>: DirectX 9 subsystem <br>
- <font color="green">Added</font>: Sound Streaming for OGG and FLAC <br>
- <font color="green">Added</font>: #PB_Sound_MultiChannel support for the sound library <br>
- <font color="green">Added</font>: CreateImageMenu(), CreatePopupImageMenu(), SHA1FingerPrint(), SHA1FileFingerPrint() <br>
- <font color="green">Added</font>: CRC32FileFingerprint(), ExamineMD5FingerPrint(), ExamineSHA1FingerPrint(), <br>
- <font color="green">Added</font>: NextFingerPrint(), FinishFingerPrint(), IsFingerPrint() <br>
- <font color="green">Added</font>: Hexadecimal and binary support for Val() and ValQ() <br>
- <font color="green">Added</font>: #PB_Compiler_Procedure compiler constant <br>
- <font color="green">Added</font>: #PB_Round_Nearest support for Round() <br>
- <font color="green">Added</font>: 'XOr' drawing support for Linux/SDL and MacOS X <br>
- <font color="green">Added</font>: New "Profiler" tool for the Debugger menu to monitor how often lines are called in the code <br>
- <font color="green">Added</font>: Debugger can now evaluate expressions (see Debug output) <br>
- <font color="green">Added</font>: The Memory Viewer can accept any expression as the start/end address <br>
- <font color="green">Added</font>: Adding a "+" at the "end address" field of the Memory viewer makes the end address relative <br>
- <font color="green">Added</font>: Placing the mouse over a Variable will display its value while the program runs. <br>
- <font color="green">Added</font>: Selecting a more complex expression and placing the mouse over it will evaluate the expression in the running program (if possible) <br>
<br>
- <font color="orange">Changed</font>: Mid() has now the Len() parameter optional <br>
<br>
- <font color="#924B72">Optimized</font>: Compiler source processing speed (up to 8x faster) <br>
- <font color="#924B72">Optimized</font>: The whole commandset by using a better C compiler (Windows only) <br>
<br>
- <font color="blue">Fixed</font>: Quite some bugs related to the commands and compiler 


 


</blockquote>
<p><b>4th November 2007 : Version 4.10</b></p><blockquote>





- <font color="green">Added</font>: XML library <br>
- <font color="green">Added</font>: Drag &amp; Drop library <br>
- <font color="green">Added</font>: Vista compatibility (fully compatible with UAC), except for Sprite library (planned for 4.20) <br>
- <font color="green">Added</font>: ModPlug support for module replaying (removed MIDAS) <br>
- <font color="green">Added</font>: ScintillaGadget(), TruncateFile() <br>
- <font color="green">Added</font>: EnableASM and DisableASM compiler directives <br>
- <font color="green">Added</font>: #PB_OS_Windows_Vista and #PB_OS_Windows_Server_2008 for OSVersion() <br>
- <font color="green">Added</font>: Lots of new features for the WebGadget() <br>
- <font color="green">Added</font>: many new small improvement to the IDE (New compiler communication protocol, 
Vista compliance, brace markers, faster coloring etc.) <br>
- <font color="green">Added</font>: synchronized release between Windows, Linux and MacOS X ! <br>
<br>
- <font color="orange">Changed</font>: InitDatabase() to UseODBCDatabase() <br>
- <font color="orange">Changed</font>: On Windows the IDE and PB tools preferences are now stored in the user applicationdata folder <br>
<br>
- <font color="red">Removed</font>: The SmartUpdate tool is no longer supported <br>
<br>
- <font color="blue">Fixed</font>: lots of bugs related to the commands and compiler 


 


</blockquote>
<p><b>18th December 2006 : Version 4.02 (Merry Christmas !)</b></p><blockquote>





- <font color="blue">Fixed</font>: Macros issues <br>
- <font color="blue">Fixed</font>: LoadImage() with plug-ins in unicode mode <br>
- <font color="blue">Fixed</font>: ExplorerListGadget() with over 4GB file <br>
- <font color="blue">Fixed</font>: ExaminePreferenceKeys() didn't list the first key <br>
- <font color="blue">Fixed</font>: ExamineDirectory() didn't handle patterns properly <br>
- <font color="blue">Fixed</font>: Several IDE problems <br>
- <font color="blue">Fixed</font>: Some IDE and Debugger problems <br>
- <font color="blue">Fixed</font>: Several compiler bugs 


 


</blockquote>
<p><b>1st November 2006 : Version 4.01</b></p><blockquote>





- <font color="orange">Changed</font>: CreateThread() doesn't returns an OS thread handle anymore (use ThreadID() instead) <br>
<br>
- <font color="blue">Fixed</font>: Several important quad and unicode issues <br>
- <font color="blue">Fixed</font>: Threadsafe mode wasn't properly working in some cases <br>
- <font color="blue">Fixed</font>: Nested compiler directives in macros <br>
- <font color="blue">Fixed</font>: GetFileDate() and DirectoryEntryDate() now uses local time <br>
- <font color="blue">Fixed</font>: OpenFileRequester() could fail with a lot of selected files <br>
- <font color="blue">Fixed</font>: Many minors bugs 


 


</blockquote>
<p><b>8th May 2006 : Version 4.00</b></p><blockquote>





As PureBasic 4 is a quite big release in both terms of changes and enhancements, a 
document which sum up all the modifications about the libraries commands since the 
last stable release is available: <a href="../mainguide/changes.html">click here</a>. <br>
<br>
- <font color="green">Added</font>: Native unicode support <br>
- <font color="green">Added</font>: Subsystems support <br>
- <font color="green">Added</font>: Unlimited length strings in both ascii and unicode mode <br>
- <font color="green">Added</font>: Thread safe commandset and strings <br>
- <font color="green">Added</font>: Character type (.c) <br>
- <font color="green">Added</font>: Double type (.d) <br>
- <font color="green">Added</font>: Quad type (.q) <br>
- <font color="green">Added</font>: 'XOr' and 'Not' logicals operators <br>
- <font color="green">Added</font>: Fixed string type (String${#Number}) <br>
- <font color="green">Added</font>: Macro/EndMacro - single and complex mode <br>
- <font color="green">Added</font>: With/EndWith for cleaner code <br>
- <font color="green">Added</font>: Assign possibility to Static (quite important), Protected and Global: "Global a = 5" <br>
- <font color="green">Added</font>: It's now possible to create a linked-list of pointer <br>
- <font color="green">Added</font>: Support for Global, Protected, Static and Shared arrays and linked-list: "Global NewList MyList.l()". NewList alone does not make the list global anymore <br>
- <font color="green">Added</font>: #PB_Compiler_File, #PB_Compiler_Line, #PB_Compiler_Version, #PB_Compiler_Home, #PB_Compiler_Debugger, #PB_Compiler_ThreadSafe, #PB_Compiler_Unicode <br>
- <font color="green">Added</font>: CompilerError "Message" directive <br>
- <font color="green">Added</font>: @procedure() and ?Label support in Data.l directive <br>
- <font color="green">Added</font>: optional parameters for procedures, interfaces methods, and prototypes <br>
- <font color="green">Added</font>: /CONSTANT Test=Value switch to declare constants on the compiler line <br>
- <font color="green">Added</font>: Swap keyword to quickly swap 2 variables or elements (Swap a,b). <br>
- <font color="green">Added</font>: multiple 'Case' for Select/EndSelect: Case 1, 2, 6 To 20 <br>
- <font color="green">Added</font>: 'Prototype' keyword to declare functions pointers easily <br>
- <font color="green">Added</font>: 'ProcedureC' keyword to declare cdecl procedure easily <br>
- <font color="green">Added</font>: Procedure parameters can now have the same name than a global variable (automatically protected) <br>
- <font color="green">Added</font>: EnableExplicit/DisableExplicit: variables must be declared with Define, Global, Protected, Shared or Static. <br>
- <font color="green">Added</font>: Defined(Name, Type) compiler function. Type can be #PB_Constant, #PB_Variable, #PB_Array, #PB_LinkedList, #PB_Structure, #PB_Interface <br>
- <font color="green">Added</font>: ReDim for single and multi-dimensioned arrays <br>
- <font color="green">Added</font>: Import/ImportC/EndImport to import functions and variables from external .lib <br>
- <font color="green">Added</font>: LinkedList and Arrays can now be passed as procedure parameters <br>
- <font color="green">Added</font>: /LINKER flags to provide a command file directly to the linker <br>
- <font color="green">Added</font>: PseudoTypes: p-ascii, p-unicode, p-variant, p-utf8 and p-bstr <br>
- <font color="green">Added</font>: Assembler and Linker errors for CLI compiler are now directly displayed <br>
- <font color="green">Added</font>: OpenGL subsystem for multimedia applications (can be combined with NT4 one) <br>
- <font color="green">Added</font>: full alphachannel support for Sprite3D library (trough PNG and TIFF) <br>
- <font color="green">Added</font>: Subsystem() compiler directive to check if a subsystem is in use <br>
- <font color="green">Added</font>: exponent form for constant float: 123.5e-20 <br>
- <font color="green">Added</font>: local variables aliases are generated when using '!' raw assembly to ease their referencing (in form p.v_variable) <br>
- <font color="green">Added</font>: 'Step over' and 'Step out' features to the debugger <br>
- <font color="green">Added</font>: Process library <br>
<br>
- <font color="#006666">Updated</font>: NT4 support is now done trough a subsystem (DirectX 3) <br>
- <font color="#006666">Updated</font>: Resident files now supports quad, double, macros and prototypes <br>
- <font color="#006666">Updated</font>: Many library commands <br>
- <font color="#006666">Updated</font>: OGRE engine to 1.0.7 version <br>
- <font color="#006666">Updated</font>: The french documentation has been greatly enhanced <br>
<br>
- <font color="#924B72">Optimized</font>: Smaller executable footprint: 1.5 kb instead of 2.5 kb for the smallest one <br>
- <font color="#924B72">Optimized</font>: Faster float and literal numeric mixing <br>
- <font color="#924B72">Optimized</font>: File library completely rewritten and now handle a read/write cache for very fast performances. Also support for 64-bit files. <br>
- <font color="#924B72">Optimized</font>: Procedures are now as small as possible, which should give some speed increase <br>
<br>
- <font color="orange">Changed</font>: Console library commands can now fully redirected (ie: possible to use them for CGI for example) <br>
- <font color="orange">Changed</font>: When a numeric parameter is expected, it's not possible to pass a string anymore <br>
- <font color="orange">Changed</font>: Temporary PureBasic.exe name aren't random anymore, because it could cause slowdown with some firewalls <br>
- <font color="orange">Changed</font>: 'DefType' renamed to 'Define' <br>
<br>
- <font color="blue">Fixed</font>: Internal system functions no more trash reserved registers <br>
- <font color="blue">Fixed</font>: Mouse is automatically released in windowed mode when the window loose focus <br>
- <font color="blue">Fixed</font>: KeyboardInkey() now handle shift/alt modifiers correctly <br>
- <font color="blue">Fixed</font>: IsScreenActive() works correctly for windowed mode as well <br>
- <font color="blue">Fixed</font>: A lot of small/medium issues which have arisen since the last version 


 


</blockquote>
<p><b>16 August 2005 : Version 3.94</b></p><blockquote>





- <font color="green">Added</font>: Brand a new IDE and 3 Debuggers (!) <br>
- <font color="green">Added</font>: Resource file support to the compiler and IDE (/RESOURCE compiler switch) <br>
- <font color="green">Added</font>: Version support for executables and DLL (trough resource) <br>
- <font color="green">Added</font>: #PB_Event_ActivateWindow event support <br>
- <font color="green">Added</font>: #PB_Web_Mozilla flag to use the Mozilla ActiveX for the WebGadget() <br>
- <font color="green">Added</font>: GetToolBarButtonState() and SetToolBarButtonState() <br>
- <font color="green">Added</font>: Full documentation for the IDE and Debuggers <br>
<br>
- <font color="blue">Fixed</font>: 32x32 bitmaps in ListIconGadget() with big icon display mode <br>
- <font color="blue">Fixed</font>: OpenScreen()/CloseScreen() could fail when using sprite3D <br>
- <font color="blue">Fixed</font>: MovieLength() and MovieInfo() were incorrect with WMV format (thanks to Traumatic ;-) <br>
- <font color="blue">Fixed</font>: ToolBar disable bug when mixing image and icon with XP skins <br>
- <font color="blue">Fixed</font>: Possible crash when closing a window with a free'ed statusbar or toolbar <br>
- <font color="blue">Fixed</font>: ImageGadget() and ButtonImageGadget() couldn't be used with AnimateWindow_() <br>
- <font color="blue">Fixed</font>: ImageGadget() bug when using DisableGadget() <br>
- <font color="blue">Fixed</font>: LineXY() didn't release memory correctly <br>
- <font color="blue">Fixed</font>: Line() and LineXY() affected the DrawText() position <br>
- <font color="blue">Fixed</font>: SortList() could crash with big already sorted lists <br>
- <font color="blue">Fixed</font>: SetMenuItemState() did change the disable state <br>
- <font color="blue">Fixed</font>: Editable combobox created with #PB_Any didn't handle TAB correctly <br>
- <font color="blue">Fixed</font>: OpenFileRequester() fails if the default filename wasn't correct <br>
- <font color="blue">Fixed</font>: Compiler bug with string concatenation and procedures <br>
- <font color="blue">Fixed</font>: Alignment problem in procedure which could makes API call fails in some case <br>


</blockquote>
<p><b>28th February 2005 : Version 3.93</b></p><blockquote>





- <font color="green">Added</font>: SortStructuredArray(), SortList(), SortStructuredList() <br>
- <font color="green">Added</font>: Conditional directives to LibraryMaker <br>
- <font color="green">Added</font>: KeyboardMode() (wasn't in the doc) <br>
- <font color="green">Added</font>: Optional 'Color' parameter for ColorRequester() and FontRequester() <br>
- <font color="green">Added</font>: SetGadgetText() can now be used on an editable ComboBoxGadget() <br>
- <font color="green">Added</font>: #PB_Default support to ClipSprite() to remove the clipping <br>
- <font color="green">Added</font>: #PB_FileSystem_Force to CopyDirectory() <br>
- <font color="green">Added</font>: #PB_OS_Windows_Server_2003 support to OSVersion() <br>
- <font color="green">Added</font>: Base64Decoder(), GetGadgetFont() <br>
- <font color="green">Added</font>: ResizeImage() now support a 'Mode' parameter to choose the resize algorithm <br>
- <font color="green">Added</font>: Event when a splitter is moved or resized so the children can be agenced <br>
- <font color="green">Added</font>: Real-time debugger check for Plot(x,y,Color) with ScreenOutput() and SpriteOutput() <br>
- <font color="green">Added</font>: Debugger check to DirectoryEntrySize/Name/Attributes() <br>
- <font color="green">Added</font>: IDE enhancements by Tinman <br>
<br>
- <font color="#006666">Updated</font>: Interface Importer and DirectX9 interfaces in residents (thanks to Traumatic !) <br>
- <font color="#006666">Updated</font>: Uses of Kale's icons for the IDE <br>
- <font color="#006666">Updated</font>: French documentation spellchecked and reworked by trasfract <br>
<br>
- <font color="#924B72">Optimized</font>: Debugger mode is smaller and allow big structured variables <br>
- <font color="#924B72">Optimized</font>: Split Misc library <br>
- <font color="#924B72">Optimized</font>: Faster Base64Encoder() function <br>
- <font color="#924B72">Optimized</font>: Better code generation for string assignment and concatenation <br>
<br>
- <font color="orange">Changed</font>: OffsetOf() syntax, to fit with the SizeOf() one (more consistent) <br>
<br>
- <font color="blue">Fixed</font>: A bug in ImageGadget() with XP skin activated and 32-bit bitmaps <br>
- <font color="blue">Fixed</font>: ExplorerListGadget() didn't displayed .ico and .lnk files correctly <br>
- <font color="blue">Fixed</font>: ButtonImageGadget() was loosing its picture in rare case with XP skins <br>
- <font color="blue">Fixed</font>: No more 'ding' (windows sound) on click in fullscreen when ExamineMouse() wasn't used <br>
- <font color="blue">Fixed</font>: When using ALT+TAB with a fullscreen application, the icon is correctly displayed <br>
- <font color="blue">Fixed</font>: Sprites are now correctly restored when switching back from multitask <br>
- <font color="blue">Fixed</font>: CopyDirectory() modified the input string in some case <br>
- <font color="blue">Fixed</font>: ListIndex() was broken in some rare cases <br>
- <font color="blue">Fixed</font>: RemoveString() and CRC32FingerPrint() couldn't be used in expressions <br>
- <font color="blue">Fixed</font>: SetGadgetItemText() was broken for ListView() gadget <br>
- <font color="blue">Fixed</font>: ExamineDirectory() with an uninitialized string variable <br>
- <font color="blue">Fixed</font>: CalendarGadget() bug when multiple calendars were initialized on the same window <br>
- <font color="blue">Fixed</font>: RSet() returned wrong result in some rare cases <br>
- <font color="blue">Fixed</font>: CreateFile() failed on hidden files <br>
- <font color="blue">Fixed</font>: ZeroMemory_(), FillMemory_(), MoveMemory_() and CopyMemory_() wasn't recognized <br>
- <font color="blue">Fixed</font>: #PB_Event_MoveWindow is now correctly recognized <br>
- <font color="blue">Fixed</font>: #PB_EventType_LostFocus wasn't sent if 2 stringgadgets were side by side. <br>
- <font color="blue">Fixed</font>: Gadget's tooltips wasn't correctly displayed on NT4 when the window was always on top <br>
- <font color="blue">Fixed</font>: OGG Plug-in wasn't working anymore and sometimes songs were cut. It's also faster to decode. <br>
- <font color="blue">Fixed</font>: ResizeImage() doesn't change the image anymore if the same dimensions are used. <br>
- <font color="blue">Fixed</font>: TAB in an EditorGadget() doesn't give the focus to others gadgets anymore but insert a Tab <br>
- <font color="blue">Fixed</font>: LCase() didn't handled the '� german character correctly <br>
- <font color="blue">Fixed</font>: SetGadgetState() wasn't working correctly for OptionGadget() <br>
- <font color="blue">Fixed</font>: Debugger's code listing window dimensions are now saved like other windows <br>
- <font color="blue">Fixed</font>: EditorGadget() while using AddGadgetItem() with blank strings and -1 position <br>
- <font color="blue">Fixed</font>: SortArray() could crash on big already sorted arrays and is now thread safe <br>
- <font color="blue">Fixed</font>: ReceiveNetworkFile() didn't handle long filename correctly <br>
- <font color="blue">Fixed</font>: Display issues with ButtonImageGadget() and toggle mode (with API) <br>
- <font color="blue">Fixed</font>: SpriteWidth() and SpriteHeight() returned wrong values when ClipSprite() was used <br>
- <font color="blue">Fixed</font>: MessageRequester() over a console window sent the console window to the back <br>
- <font color="blue">Fixed</font>: SetGadgetState() for ListIconGadget() stolen the current focus <br>
- <font color="blue">Fixed</font>: Base64Encoder() produced wrong output sometimes <br>
- <font color="blue">Fixed</font>: Refresh problem with FrameGadget() and #PB_Frame_Single/Double flags <br>
- <font color="blue">Fixed</font>: GDI resource leak in ButtonImageGadget() and ImageGadget() <br>
- <font color="blue">Fixed</font>: RotateSprite3D was using a wrong angle <br>
- <font color="blue">Fixed</font>: DisableMenuItem() didn't work with #PB_Any <br>
- <font color="blue">Fixed</font>: GadgetWidth() didn't work correctly for SpinGadget() <br>
- <font color="blue">Fixed</font>: Date() returned wrong result for the 1970,1,1,0,0,0 case <br>
- <font color="blue">Fixed</font>: CallFunctionFast() accepted only 17 parameters instead of 20 <br>
- <font color="blue">Fixed</font>: OpenWindowedScreen() with AutoStretch mode missed some pixels <br>
- <font color="blue">Fixed</font>: Some refresh bug with PanelGadget() <br>
- <font color="blue">Fixed</font>: Transparent color error with 32-bit screen and 'texture' sprites <br>
- <font color="blue">Fixed</font>: Some small bugs in the IDE <br>
- <font color="blue">Fixed</font>: Several compiler bugs (string concatenation, interfaces in procedures) <br>


</blockquote>
<p><b>25th October 2004 : Version 3.92</b></p><blockquote>





- <font color="green">Added</font>: CalendarGadget() and DateGadget(), thanks to Fr34k ! <br>
- <font color="green">Added</font>: LibraryID(), SwapElements() <br>
- <font color="green">Added</font>: SaveSprite() now have an optional 'Flags' parameter and can now save 8-bit sprite/screen <br>
- <font color="green">Added</font>: Double-click on Windows background now generate an event (Thanks to Rings) <br>
<br>
- <font color="#924B72">Optimized</font>: ListCount() and ListIndex() are now very fast (it doesn't iterate each element of the list anymore). <br>
<br>
- <font color="orange">Changed</font>: DeleteElement() now always goes back to the previous element (can be outside the list if <br>
it was the first element), to be fully compatible with ForEach. An optional flag has been added  <br>
to preserve previous behavior. <br>
- <font color="orange">Changed</font>: the application current directory isn't anymore touched by any PureBasic command to conform <br>
to Windows rules. <br>
<br>
- <font color="blue">Fixed</font>: CloseWindow() bug when using the 'ParentWindow' OpenWindow() parameter <br>
- <font color="blue">Fixed</font>: IsSound() wasn't available in NT4 mode <br>
- <font color="blue">Fixed</font>: AddDate() could fail depending of the computer time zone <br>
- <font color="blue">Fixed</font>: Memory leak with linkedlists, arrays and local variables when using a structure which contained strings <br>
- <font color="blue">Fixed</font>: SaveSprite() default value for JPEG saving is now '7'. <br>
- <font color="blue">Fixed</font>: DisplayPalette() failed on XP systems (1st and last color remained unchanged) <br>
- <font color="blue">Fixed</font>: ImageGadget() now supports ToolTips and bitmap/icon live switching <br>
- <font color="blue">Fixed</font>: ImageButtonGadget() now supports skinning and bitmap/icon live switching <br>
- <font color="blue">Fixed</font>: SetGadgetItemText() for ListViewGadget() destroyed the item user data <br>
- <font color="blue">Fixed</font>: CopyImage() failed on WinNT4 under some conditions <br>
- <font color="blue">Fixed</font>: A memory leak in SendNetworkFile(). Now, it returns 1 on success or 0 on failure. <br>
- <font color="blue">Fixed</font>: StatusBarText() didn't refresh the statusbar with the 'Borderless' flag <br>
- <font color="blue">Fixed</font>: CatchImage() with #PB_any <br>
- <font color="blue">Fixed</font>: the PNG decoder nows handle corrupted PNG safely <br>
- <font color="blue">Fixed</font>: the JPEG encoder with quality value inferior to 3 could lead to a crash <br>
- <font color="blue">Fixed</font>: a little TreeGadget() bug when checkboxes were activated <br>
- <font color="blue">Fixed</font>: Packer compression routine was sometimes hanging on some files <br>
- <font color="blue">Fixed</font>: OnError library wasn't useable in a DLL (thanks to Rings) <br>
- <font color="blue">Fixed</font>: Literal string concatenation were wrong in some cases <br>
- <font color="blue">Fixed</font>: The compiler didn't returned a non zero exit code if an error occurred <br>
- <font color="blue">Fixed</font>: Several compiler bugs <br>

</blockquote>
<p><b>4th July 2004 : Version 3.91</b></p><blockquote>





- <font color="green">Added</font>: Desktop library <br>
- <font color="green">Added</font>: IsDatabase(), IsFile(), IsFont(), IsDirectory(), IsGadget(), IsImage(), IsLibrary(), IsMenu(), IsModule(), <br>
IsMovie(), IsPalette(), IsSprite(), IsSprite3D(), IsStatusBar(), IsSysTrayIcon(), IsToolBar(), IsWindow() <br>
- <font color="green">Added</font>: Manifest file (for XP skins) is now included in the exe <br>
- <font color="green">Added</font>: 'Main source' support in the IDE for multifile projects <br>
- <font color="green">Added</font>: Debugger check for empty list element access <br>
<br>
- <font color="orange">Changed</font>: WindowMouseX() and WindowMouseY() now returns the coordinates in the window client area (DesktopMouseX() now replaces the old behavior). <br>
- <font color="orange">Changed</font>: the LCC resource compiler and linker to PellesC one <br>
<br>
- <font color="blue">Fixed</font>: AddDate() bug <br>
- <font color="blue">Fixed</font>: MDIGadget resize when a StatusBar was added after the MDI creation <br>
- <font color="blue">Fixed</font>: InputPathRequester() which could crash on Win98 in some circumstances <br>
- <font color="blue">Fixed</font>: OpenWindowedScreen() position when used within container gadgets <br>
- <font color="blue">Fixed</font>: Trim() in expression <br>
- <font color="blue">Fixed</font>: a crash which could randomly occurs at the very end of the program when OpenHelp() was used. <br>
- <font color="blue">Fixed</font>: a bug in PlayMovie() which could hide the movie on some configuration <br>
- <font color="blue">Fixed</font>: Compiler bug when accessing a deeply nested structure array. <br>


</blockquote>
<p><b>12th April 2004 : Version 3.90</b></p><blockquote>





- <font color="green">Added</font>: #PB_Any support (dynamic numbering) for Database, File, Font, FileSystem, Gadget, Image, Library, <br>
Module, Movie, Palette, Sprite, Sprite3D, SysTray, ToolBar, StatusBar and Window <br>
- <font color="green">Added</font>: CountString(), KeyboardInkey(), GetWindowTitle(), SetWindowTitle(), ElapsedMilliseconds() <br>
- <font color="green">Added</font>: RemoveGadgetColumn(), SetGadgetAttribute(), GetGadgetAttribute(), SetGadgetItemAttribute(), GetGadgetItemAttribute() <br>
- <font color="green">Added</font>: MDIGadget() by Fr34k <br>
- <font color="green">Added</font>: VerticalBlank support for FlipBuffers() (and works in windowedmode too) <br>
- <font color="green">Added</font>: Autosize for StatusBar and ToolBar (no more callback needed) <br>
- <font color="green">Added</font>: New size handler by Fr34k which allow real-time window sizing (with #PB_Event_SizeWindow) without callback ! <br>
- <font color="green">Added</font>: New 'z' optional parameter to TransformSprite3D() <br>
- <font color="green">Added</font>: Several new flags for SplitterGadget() for better flexibility <br>
- <font color="green">Added</font>: SetGadgetAttribute() support for ScrollAreaGadget() to resize the inner area. <br>
- <font color="green">Added</font>: Joystick and Module support for NT4 compatibility mode <br>
- <font color="green">Added</font>: Hexadecimal display, clear-copy-save debug output and window position saving to the debugger <br>
- <font color="green">Added</font>: Support for different depth icons for the default program icon <br>
- <font color="green">Added</font>: IDE features: Interface viewer, new MS SDK support, find in files, line numbering <br>
- <font color="green">Added</font>: 'Static' keyword for local variables (in procedures) which need to be persistent <br>
- <font color="green">Added</font>: Last FAsm (assembler) version, which has some speed improvement and fix a bug on big sources <br>
- <font color="green">Added</font>: QuickHelp support in the PureBasic IDE for most of the API functions ! <br>
<br>
- <font color="orange">Changed</font>: no more #Memory ID and flag for AllocateMemory() <br>
- <font color="orange">Changed</font>: CDAudioName() doesn't need an ID anymore, as stated in the docs. <br>
<br>
- <font color="#924B72">Optimist</font>: split CDAudio, Database, File, Network, StatusBar and Systray libraries <br>
<br>
- <font color="red">Removed</font>: UpdateStatusBar(), UseMemory(), MemoryID() <br>
<br>
- <font color="blue">Fixed</font>: French documentation is now perfectly up to date <br>
- <font color="blue">Fixed</font>: NT4 (DirectX 3) support for Sprite, Palette, Sound, Keyboard and Mouse libraries <br>
- <font color="blue">Fixed</font>: Bug in CreateSprite3D(), the width and height was 1 pixel wider <br>
- <font color="blue">Fixed</font>: Bug with SpritePixelCollision if the same sprite was used for both collisions. <br>
- <font color="blue">Fixed</font>: Bug in the debugger with win98 (application window was in background) <br>
- <font color="blue">Fixed</font>: OpenWindowedScreen() didn't take the menu height in count (if any) <br>
- <font color="blue">Fixed</font>: IsFilename() missed some checks <br>
- <font color="blue">Fixed</font>: Several expression parser bugs in the compiler <br>
- <font color="blue">Fixed</font>: SizeOf() when used with extended structures <br>
- <font color="blue">Fixed</font>: NewPrinterPage() bug on Win98 <br>
- <font color="blue">Fixed</font>: CloseScreen() when used with Sprite3D library <br>
- <font color="blue">Fixed</font>: Several paths problems when using the compiler in console mode <br>
- <font color="blue">Fixed</font>: All requesters now locks all the opened windows <br>

</blockquote>
<p><b>9th December 2003 : Version 3.81</b></p><blockquote>





- <font color="green">Added</font>: DatabaseUpdate(), DatabaseError() <br>
- <font color="green">Added</font>: Play/Stop/Resume/PauseMovie() support for sprite rendered movies <br>
- <font color="green">Added</font>: 'Extends' support for 'Structure' <br>
- <font color="green">Added</font>: Icon support and live image resize for DrawImage() <br>
- <font color="green">Added</font>: 2, 16 and 256 colors BMP support for Catch/LoadSprite() <br>
- <font color="green">Added</font>: #PB_Default support for DrawingFont() <br>
- <font color="green">Added</font>: Added Japanese support for Gadget library, editor and Visual Designer  <br>
- <font color="green">Added</font>: Excellent SmartUpdate tool from fr34k to update quickly any PureBasic version <br>
- <font color="green">Added</font>: Last version of the Visual Designer by Berikco <br>
<br>
- <font color="#924B72">Optimized</font>: ExplorerGadgets are now 5x faster for directories scanning <br>
<br>
- <font color="orange">Changed</font>: Labels are no more case-sensitive <br>
- <font color="orange">Changed</font>: Default quality for SaveImage() and JPEG plug-in is now '7' <br>
- <font color="orange">Changed</font>: InitModule() and InitPalette() doesn't need the maximum parameter anymore <br>
- <font color="orange">Changed</font>: PlayMovie() behavior has changed for rendered movies <br>
<br>
- <font color="blue">Fixed</font>: A memory leak in Sprite rendered movies <br>
- <font color="blue">Fixed</font>: Requesters commands could lock other applications if no window were opened <br>
- <font color="blue">Fixed</font>: Some interfaces definitions was wrong in the Residents <br>
- <font color="blue">Fixed</font>: String constants with multiple constants items <br>
- <font color="blue">Fixed</font>: KeyboardReleased(#PB_Key_All) wasn't working <br>
- <font color="blue">Fixed</font>: Compiler bug with Interface in procedure and with string returns <br>
- <font color="blue">Fixed</font>: ProcedureDLL bug when a string return type was specified <br>
- <font color="blue">Fixed</font>: CopySprite() didn't work with Alpha-Sprites <br>
- <font color="blue">Fixed</font>: Bug in the compiler optimizer with bytes and word in some very rare cases <br>
- <font color="blue">Fixed</font>: JPEG and TIFF decoder bug in rare situation <br>
- <font color="blue">Fixed</font>: Small EditorGadget() and SpinGadget() bugs <br>

</blockquote>
<p><b>6th October 2003 : Version 3.80</b></p><blockquote>





- <font color="green">Added</font>: ExplorerComboBoxGadget() <br>
- <font color="green">Added</font>: CameraProjection(), CameraBackColor() and CameraRange() <br>
- <font color="green">Added</font>: The modulo operand: '%' <br>
- <font color="green">Added</font>: ForEach command to iterate linkedlists quickly <br>
- <font color="green">Added</font>: Interface/EndInterface to support object function call ! Yes, COM and DX objects are now accessible natively in PureBasic... <br>
- <font color="green">Added</font>: Big residents files with all Windows/DirectX interfaces ready to use ! <br>
- <font color="green">Added</font>: Break and Continue to modify the loops flow <br>
- <font color="green">Added</font>: Enumeration/EndEnumeration to quickly declare a lot of sequential constants <br>
- <font color="green">Added</font>: OffsetOf() to get the offset of a structure or interface field <br>
- <font color="green">Added</font>: SizeOf() now supports variables and Interfaces  <br>
- <font color="green">Added</font>: Interface, Float and String constants support to the 'Resident' file format <br>
- <font color="green">Added</font>: Quality support for SaveImage() and the JPEG encoder <br>
- <font color="green">Added</font>: MessageRequester() 'Flags' is now an optional parameter <br>
- <font color="green">Added</font>: The Editor syntax coloring and structure viewer have been greatly enhanced <br>
<br>
- <font color="#924B72">Optimized</font>: Removed many OGRE's dependencies resulting in a smaller Engine3D.DLL <br>
<br>
- <font color="orange">Changed</font>: Constants are back real constants now (use Enumeration to have dynamic constants) <br>
<br>
- <font color="blue">Fixed</font>: ASM registers display in the Debugger <br>
- <font color="blue">Fixed</font>: IncludePath problems with IncludeBinary <br>
- <font color="blue">Fixed</font>: Couldn't use TAB inside an editable ComboBoxGadget() <br>
- <font color="blue">Fixed</font>: DeleteDirectory() failed with a read-only directory in 'Force' mode <br>
- <font color="blue">Fixed</font>: TGA decoder bug for Top/Down and RLE pictures <br>
- <font color="blue">Fixed</font>: Possible lock in the AddPackFile() and PackMemory() routines <br>
- <font color="blue">Fixed</font>: the structure size when the structure was very big (over 32000 bytes) <br>
- <font color="blue">Fixed</font>: Int(): a negative value could produce wrong results <br>
- <font color="blue">Fixed</font>: A LinkedList issue when it was used in and outside a Procedure <br>
- <font color="blue">Fixed</font>: Line() and LineXY() was not drawing the last point <br>
- <font color="blue">Fixed</font>: debugger checks: InitEngine3D() <br>
- <font color="blue">Fixed</font>: A bug in TextLength() when an empty string was used <br>
- <font color="blue">Fixed</font>: ProcedureReturn bug when used in 'Select String$' expression <br>
- <font color="blue">Fixed</font>: Sounds were limited to 50 when debugger was activated <br>
- <font color="blue">Fixed</font>: ClipSprite() wasn't supported by DisplayAlphaSprite(), DisplayShowSprite(), DisplaySolidSprite() and DisplayTranslucentSprite() <br>
- <font color="blue">Fixed</font>: A reserved keyword like 'Data' couldn't be used in a Structure <br>
- <font color="blue">Fixed</font>: CreatePack(), SaveImage() and SaveSprite() didn't work with very long filename <br>
- <font color="blue">Fixed</font>: Inkey() was halting the program flow <br>
- <font color="blue">Fixed</font>: FileSize() returned wrong value on Win9x for root directories <br>
- <font color="blue">Fixed</font>: An editor bug which caused panel tab inversion <br>

</blockquote>
<p><b>13th July 2003 : Version 3.72</b></p><blockquote>





- <font color="orange">Changed</font>: SelectedFilePattern() and Open/SaveFileRequester pattern index is now '0' based instead of '1' based. Warning ! <br>
- <font color="orange">Changed</font>: ListIndex() is now '0' based instead of '1' based. Warning ! <br>
<br>
- <font color="#006666">Updated</font>: IDE: find/replace updated, an '*' now identify a modified file <br>
- <font color="#006666">Updated</font>: Toolbar library has been split and optimized <br>
- <font color="#006666">Updated</font>: all missing libraries quickhelps (status bar of the editor) <br>
<br>
- <font color="blue">Fixed</font>: ParseDate() when no separators were used in the date <br>
- <font color="blue">Fixed</font>: ResizeImage() has now a nice quality resampling <br>
- <font color="blue">Fixed</font>: several gadget events issue (Splitter, Panel) <br>
- <font color="blue">Fixed</font>: PNG and JPEG decoder in some rare cases <br>
- <font color="blue">Fixed</font>: the name of several functions (OnError library) <br>
- <font color="blue">Fixed</font>: several compiler bugs 

 

</blockquote>
<p><b>7th June 2003 : Version 3.70</b></p><blockquote>





- <font color="green">Added</font>: Terrain library <br>
- <font color="green">Added</font>: Billboard library <br>
- <font color="green">Added</font>: Entity library <br>
- <font color="green">Added</font>: Material library <br>
- <font color="green">Added</font>: Particle library <br>
- <font color="green">Added</font>: OnError library <br>
- <font color="green">Added</font>: CameraLookAt(), CameraRenderMode(), CameraFOV(), Engine3DFrameRate(), CountRenderedTriangles() <br>
- <font color="green">Added</font>: CreateMesh(), SetMeshData() <br>
- <font color="green">Added</font>: ExamineLibraryFunctions(), NextLibraryFunction(), LibraryFunctionName(), LibraryFunctionAddress() <br>
- <font color="green">Added</font>: IsFunctionEntry(), CallCFunction(), CallCFunctionFast() <br>
- <font color="green">Added</font>: RenderMovieFrame(): Yes, you can play a movie on a sprite or on a screen ! <br>
- <font color="green">Added</font>: OpenGadgetList(), ScrollBarGadget(), ScrollAreaGadget(), SplitterGadget() <br>
- <font color="green">Added</font>: HyperLinkGadget(), ContainerGadget(), EditorGadget() <br>
- <font color="green">Added</font>: TreeGadgetItemNumber(), ExplorerListGadget(), ExplorerTreeGadget() <br>
- <font color="green">Added</font>: #PB_FontRequester_Effects flag for the FontRequester() <br>
- <font color="green">Added</font>: PanelGadget() has been fully rewritten and is now XP theme compliant <br>
- <font color="green">Added</font>: TreeGadget() has been rewritten to support dynamic items (add, remove..)  <br>
- <font color="green">Added</font>: AddGadgetItem() now support picture for the PanelGadget() <br>
- <font color="green">Added</font>: 'ParentID' optional parameter to OpenWindow() <br>
- <font color="green">Added</font>: CDecl support for PureFunctions and procedures (Added 'ProcedureCDLL' and 'DeclareCDLL' keyword) <br>
- <font color="green">Added</font>: End [ExitCode] optional parameter <br>
- <font color="green">Added</font>: More precise error-message for Assembly and Linker errors <br>
- <font color="green">Added</font>: /LINENUMBERING compiler switch <br>
- <font color="green">Added</font>: Full debugger support for the 3D engine <br>
- <font color="green">Added</font>: ComboBox support for GetGadgetItemText() and SetGadgetItemText() <br>
- <font color="green">Added</font>: Many new functions for the Visual designer including Tab order, font selection, new gadgets and more. <br>
<br>
- <font color="orange">Changed</font>: Mesh library, introduced a new Entity one (for more flexible control) <br>
- <font color="orange">Changed</font>: ClosePanelGadget to CloseGadgetList() <br>
- <font color="orange">Changed</font>: Inline assembly labels are now l_label instead of pLabel <br>
<br>
- <font color="#924B72">Optimized</font>: and split the Movie library <br>
<br>
- <font color="blue">Fixed</font>: SpriteCollision() and SpritePixelCollision() was 1 pixel wrong <br>
- <font color="blue">Fixed</font>: Result code for CopyDirectory was wrong in some case <br>
- <font color="blue">Fixed</font>: StrF(): if a digit number is specified it rounds correctly <br>
- <font color="blue">Fixed</font>: Several debugger warning was missing <br>
- <font color="blue">Fixed</font>: Floats and integers were badly mixed in some case <br>

</blockquote>
<p><b>25th March 2003 : Version 3.62</b></p><blockquote>





- <font color="red">Removed</font>: FakeEndSelect <br>
<br>
- <font color="blue">Fixed</font>: Several compiler bugs <br>
- <font color="blue">Fixed</font>: Small bug in the PNG encoder and decoder <br>
- <font color="blue">Fixed</font>: ProcedureReturn inside Select/EndSelect <br>
- <font color="blue">Fixed</font>: Array allocation if no memory was available <br>
- <font color="blue">Fixed</font>: Int(): broken since v3.60 <br>
- <font color="blue">Fixed</font>: Val(): now accepts any BASIC valid forms <br>
- <font color="blue">Fixed</font>: AddPackFile() problem on some files <br>
- <font color="blue">Fixed</font>: RunProgram() with very long paths <br>

</blockquote>
<p><b>19th March 2003 : Version 3.61</b></p><blockquote>





- <font color="blue">Fixed</font>: Major compiler array bugs <br>
- <font color="blue">Fixed</font>: Major MD5FileFingerprint() bug <br>
- <font color="blue">Fixed</font>: Syntax Highlighting for command/procedure and Alt+V shortcut <br>
- <font color="blue">Fixed</font>: 2 bugs in the Visual Designer <br>
- <font color="blue">Fixed</font>: Sprite loading and image plug-in (JPEG, PNG) in 16-bit mode <br>
- <font color="blue">Fixed</font>: XOR inline ASM keyword was no more recognized <br>
- <font color="blue">Fixed</font>: TGA decoder on some file 

 

</blockquote>
<p><b>17th March 2003 : Version 3.60</b></p><blockquote>





- <font color="green">Added</font>: Powerful Visual Designer, to easily creates graphical applications <br>
- <font color="green">Added</font>: Many new optimizations in the compiler core, resulting in faster/smaller code 
(especially when dealing with arrays and structured variables) <br>
- <font color="green">Added</font>: Native JPEG, TIFF, PNG and TGA image/sprite decoder trough plug-in <br>
- <font color="green">Added</font>: Native JPEG and PNG image/sprite encoder trough plug-in <br>
- <font color="green">Added</font>: Native OGG sound decoder trough plug-in <br>
- <font color="green">Added</font>: AvailableScreenMemory(), SelectedFilePattern(), DefaultPrinter() <br>
- <font color="green">Added</font>: Flags for LoadFont() to allow italic, bold and more <br>
- <font color="green">Added</font>: Multisource support for the debugger (Included files) <br>
- <font color="green">Added</font>: Array overflow debugger check <br>
- <font color="green">Added</font>: Data read overflow debugger check <br>
- <font color="green">Added</font>: Icon support for CatchImage() <br>
- <font color="green">Added</font>: MMX, 3DNOW, SSE and SSE2 optional support, with autoselect mode (to choose 
automatically the right routine at runtime, depending of the processor). <br>
- <font color="green">Added</font>: DLL Importer tool in the Library SDK <br>
<br>
- <font color="#924B72">Optimized</font>: and split: Font, Gadget and Window libraries, for smaller executable (Thanks to Danilo) <br>
<br>
- <font color="red">Removed</font>: CatchJPEGSPrite() and LoadJPEGSprite() (replaced by plug-ins) <br>
<br>
- <font color="#924B72">Enhanced</font> the PureBasic library format (new compressed format) <br>
- <font color="#924B72">Enhanced</font> Inline ASM now accept FPU opcode <br>
- <font color="#924B72">Enhanced</font> the editor: Double-click on (X)IncludeFile open the file, Inline Help works for all keywords (If/EndIf..) 
ASM syntax coloring, Inline ASM help <br>
<br>
- <font color="orange">Changed</font>: SetGadgetFont() now takes 2 parameters, to allow runtime font change <br>
<br>
- <font color="blue">Fixed</font>: SortArray() when sorting string in case insensitive mode <br>
- <font color="blue">Fixed</font>: the RunProgram() command with 3 args <br>
- <font color="blue">Fixed</font>: ImageOutput() problem with Windows 98 <br>
- <font color="blue">Fixed</font>: the 16-bit sprite display problem with some old gfx cards which use 15-bit internally <br>
- <font color="blue">Fixed</font>: some bugs in the compiler <br>

</blockquote>
<p><b>13th January 2003 (Version 3.51)</b></p><blockquote>





- <font color="#006666">Updated</font>: French documentation for v3.51 <br>
<br>
- <font color="blue">Fixed</font>: some bugs in the compiler and optimized a bit the output <br>
- <font color="blue">Fixed</font>: IPString() and IPAddressField() was in the reversed order <br>
- <font color="blue">Fixed</font>: and improved the InputRequester() by adding keyboard shortcut <br>
- <font color="blue">Fixed</font>: ReadPreferenceLong/String/Float() to accept spaced keywords <br>
- <font color="blue">Fixed</font>: MouseButton beep problem in full screen mode <br>
- <font color="blue">Fixed</font>: Date() and ParseDate() when an invalid date was specified <br>
- <font color="blue">Fixed</font>: the editor XP-Theme problem <br>
- <font color="blue">Fixed</font>: the editor ProcedureBrowser (Thanks to Dominique and Plouf) <br>
- <font color="blue">Fixed</font>: OpenWindow() dimension when no flag where specified <br>
<br>
- <font color="red">Removed</font>: the Gosub/Return check introduced in v3.50 (for flexibility reason) <br>

</blockquote>
<p><b>6th January 2003 : Happy New Year ! (Version 3.50)</b></p><blockquote>





- <font color="green">Added</font>: Engine3D Library: Add3DArchive(), AmbientColor(), Fog(), InitEngine3D(), LoadWord(), RenderWorld(), SkyBox(), SkyDome() <br>
- <font color="green">Added</font>: Camera Library: CameraLocate(), CameraX(), CameraY(), CameraZ(), CreateCamera(), FreeCamera(), MoveCamera(), RotateCamera() <br>
- <font color="green">Added</font>: Light Library: CopyLight(), CreateLight(), FreeLight(), HideLight(), LightColor(), LightLocate(), LightSpecularColor(), MoveLight() <br>
- <font color="green">Added</font>: Mesh Library: CopyMesh(), FreeMesh(), GetMeshAnimationTime(), MeshAnimation(), MeshAnimationLength(), MeshLocate(), MeshTexture(), MeshX(), MeshY(), MeshZ(), MoveMesh(), ResizeMesh(), RotateMesh(), ScaleMesh(), SetMeshAnimationTime() <br>
- <font color="green">Added</font>: Texture Library: CopyTexture(), CreateTexture(), FreeTexture(), LoadTexture(), TextureHeight(), TextureID(), TextureOutput(), TextureWidth() <br>
- <font color="green">Added</font>: WriteFloat(), ReadFloat(), MouseLocate(), MD5FileFingerprint() <br>
- <font color="green">Added</font>: STDCALL and ANY flags to PureLibraries. See SDK doc for more information <br>
- <font color="green">Added</font>: TreeGadget checkboxes support for GetGadgetItemState() <br>
- <font color="green">Added</font>: SetGadgetState() now work for ButtonImageGadget() <br>
<br>
- <font color="#006666">Updated</font>: CallFunction() and CallFunctionFast(): Floats can be passed directly <br>
- <font color="#006666">Updated</font>: SetStatusBarText() 'Appearance' parameter is now optional <br>
- <font color="#006666">Updated</font>: FrameGadget() 'Flags' parameter is now optional <br>
<br>
- <font color="#924B72">Optimized</font>: CallFunctionFast() (2x faster) <br>
- <font color="#924B72">Optimized</font>: the code generation: Chr(#Constant) is now considered as a literal string and some speed enhancements <br>
<br>
- <font color="orange">Changed</font>: The assembler (FASM), resulting of better optimized code (PB editor is 6 kb smaller for example) <br>
- <font color="orange">Changed</font>: LSet() by RSet() and RSet() by LSet() (was reversed compared to normal Basic functions) <br>
- <font color="orange">Changed</font>: OpenTreeGadgetNode() and CloseTreeGadgetNode() (now need a parameter) <br>
- <font color="orange">Changed</font>: ReleaseMouse() now takes one parameter <br>
<br>
- <font color="blue">Fixed</font>: the game mouse support in windowed mode (could lead to computer lock) <br>
- <font color="blue">Fixed</font>: SelectElement() was wrong when passing -1.. <br>
- <font color="blue">Fixed</font>: TreeGadget() when used several times on the same window <br>
- <font color="blue">Fixed</font>: SaveImage() with 16bits and 8bits desktops <br>
- <font color="blue">Fixed</font>: RSet() with 2 arguments <br>
- <font color="blue">Fixed</font>: a little bug in ParseDate() <br>
- <font color="blue">Fixed</font>: AddPackFile() and AddPackMemory(): buffer overflow in some rare cases <br>
- <font color="blue">Fixed</font>: OpenFileRequester() with MultiSelection mode <br>
- <font color="blue">Fixed</font>: a silly bug when using many images in the gadget items (TreeGadget, ListIconGadget...) <br>
- <font color="blue">Fixed</font>: Cipher library <br>

</blockquote>
<p><b>9th October 2002 : Version 3.40</b></p><blockquote>





- <font color="orange">Changed</font>: Structure names aren't case sensitive anymore (could produce difficult bug to look at) <br>
<br>
- <font color="green">Added</font>: Date library: Date(), Year(), Month(), Day(), DayOfWeek(), DayOfYear(), Hour(), Minute(), Second(), FormatDate(), AddDate(), ParseDate() <br>
- <font color="green">Added</font>: Hostname(), ExamineIPAddresses(), NextIPAddress(), IPString() <br>
- <font color="green">Added</font>: LSet(), RSet(), Bin(), RemoveString(), StringField() <br>
- <font color="green">Added</font>: ModuleVolume(), OSVersion(), WaitThread() <br>
- <font color="green">Added</font>: CopyDirectory(), DeleteDirectory(), IsFilename() <br>
- <font color="green">Added</font>: NextSelectedFilename(), InputRequester() <br>
- <font color="green">Added</font>: DrawingBuffer(), DrawingBufferPixelFormat(), DrawingBufferPitch(), FillArea() <br>
- <font color="green">Added</font>: #PB_Compiler_Date, #PB_Compiler_OS compiler built-in constants <br>
<br>
- <font color="#924B72">Optimized</font>: Split libs: FileSystem, StringExtension, Date <br>
<br>
- <font color="#006666">Updated</font>: RunProgram() now has an optional WorkingDirectory$ parameter <br>
- <font color="#006666">Updated</font>: SetGadgetFont(#PB_Font_Default) now go back to default font <br>
- <font color="#006666">Updated</font>: OpenWindow() now accepts 2 news flags: #PB_Window_WindowCentered and #PB_Window_ScreenCentered <br>
- <font color="#006666">Updated</font>: GetGadgetItemText() and SetGadgetItemText() now works for TreeGadget() <br>
- <font color="#006666">Updated</font>: ReplaceString now have a new 'StartFrom' optional parameter <br>
- <font color="#006666">Updated</font>: SetGadgetState() can be used with ImageGadget() to change the current image <br>
- <font color="#006666">Updated</font>: Added 'Level' flag for PackMemory(), AddPackFile() and AddPackMemory() for faster compression <br>
- <font color="#006666">Updated</font>: when building a DLL, AttachProcess(), DetachProcess(), AttachThread() and DetachThread() must have an 'Instance' parameter <br>
- <font color="#006666">Updated</font>: no more '_' when creating a DLL <br>
<br>
- <font color="blue">Fixed</font>: Debugger problem in the FileSystem library <br>
- <font color="blue">Fixed</font>: ReadPreferenceLong() and ReadPreferenceFloat() <br>
- <font color="blue">Fixed</font>: SpriteOutput() bug when using Plot() <br>
- <font color="blue">Fixed</font>: CDAudioTrackLength(): last track returned always 0.. <br>
- <font color="blue">Fixed</font>: OpenWindowedScreen(): bad BottomOffset and RightOffset values <br>
- <font color="blue">Fixed</font>: GetPathPart(), GetFilePart() and GetExtensionPart() <br>
- <font color="blue">Fixed</font>: SetGadgetText() when used with a ComboBox and an empty string (clear the combobox content) <br>
- <font color="blue">Fixed</font>: SetClipboardText(), now use the TEXT instead of OEM format. <br>
- <font color="blue">Fixed</font>: Compiler didn't warn when a Global variable was used in Procedure parameter. <br>
- <font color="blue">Fixed</font>: Compiler bugs in InlineASM : 'MOV eax, "String"' and 'MOV eax, #CONSTANT' were badly compiled. <br>
- <font color="blue">Fixed</font>: Compiler bug when using negative float constant <br>
- <font color="blue">Fixed</font>: Compiler bug when using float operations with API functions <br>
- <font color="blue">Fixed</font>: Compiler bug when comparing string with numeric (now forbidden) <br>
- <font color="blue">Fixed</font>: Compiler bug when using INCLUDEBINARY in DataSection <br>
- <font color="blue">Fixed</font>: Compiler bug when DECLARE and PROCEDURE didn't match (no errors were generated) <br>
- <font color="blue">Fixed</font>: Compiler bug when DEBUG was used in procedures with strings operations <br>
<br>
- Editor <font color="#924B72">enhanced</font> (Multi files, Procedure browser, custom tools and more...) and source code released. Thanks to Danilo ! <br>

</blockquote>
<p><b>16th August 2002 : Version 3.30</b></p><blockquote>





- This is a bug fixes and synchronization with Linux version release <br>
<br>
- <font color="green">Added</font>: HideMenu(), CreateSprite(), UseBuffer() <br>
- <font color="green">Added</font>: French help (fully translated) <br>
<br>
- <font color="#006666">Updated</font>: SortArray() now works with float arrays <br>
- <font color="#006666">Updated</font>: LoadSprite(), GrabSprite(), CopySprite(), CatchSprite(), LoadJPEGSprite(), CatchJPEGSprite() have now an optional 'Mode' parameter <br>
- <font color="#006666">Updated</font>: GetFilePart(), GetPathPart() and GetExtensionPart() now remove the surrounding quote (") if any. <br>
- <font color="#006666">Updated</font>: SetGadgetItemState() and GetGadgetItemState() can now set/get the checkboxes state of a ListIconGadget() item <br>
<br>
- <font color="blue">Fixed</font>: SetClipboardText(): failed in some cases <br>
- <font color="blue">Fixed</font>: SpritePixelCollision(): failed if sprites were of different sizes <br>
- <font color="blue">Fixed</font>: LoadJPEGSprite was ignoring the 'Mode' parameter (not good for 3D sprites) <br>
- <font color="blue">Fixed</font>: Bug in AddGadgetItem() with ListIconGadget() <br>
- <font color="blue">Fixed</font>: PokeF() was missing <br>
- <font color="blue">Fixed</font>: MovieAudio(): wrong volume ramp (now based on decibels..) <br>
- <font color="blue">Fixed</font>: ReleaseMouse() wasn't recognized <br>
- <font color="blue">Fixed</font>: 2DDrawing bug (again...) <br>
- <font color="blue">Fixed</font>: LoadSprite() failed with 16-bit and 32-bit BMP. <br>
- <font color="blue">Fixed</font>: GetGadgetText() when used with an editable ComboBoxGadget() <br>
- <font color="blue">Fixed</font>: ReadByte() and ReadWord() (with long/word variables) <br>
- <font color="blue">Fixed</font>: FreeMenu(), GadgetX(), GadgetY() <br>
- <font color="blue">Fixed</font>: DisplaySolidSprite() was missing <br>
- <font color="blue">Fixed</font>: Debug routine missing for GadgetID() <br>
- <font color="blue">Fixed</font>: Bug when several Movies were used (crash at program end) <br>
- <font color="blue">Fixed</font>: ResizeImage() <br>
- <font color="blue">Fixed</font>: PreferenceGroup() <br>
- <font color="blue">Fixed</font>: ExamineMouse() returned always 0 <br>
- <font color="blue">Fixed</font>: PathRequester crashed with uninitialized DefaultPath <br>
- <font color="blue">Fixed</font>: InitSprite3D() crashed when alone <br>
- <font color="blue">Fixed</font>: Editor: ZoomSprite3D() didn't highlight <br>

</blockquote>
<p><b>9th June 2002 : Version 3.20</b></p><blockquote>


<b>WARNING!</b> The window callback behavior have changed and will cause program lock if you used one ! See SetWindowCallback() doc for more info. <br>
<br>
- <font color="green">Added</font>: Cipher library: CRC32Fingerprint(), MD5Fingerprint(), DESFingerprint(), Base64Encoder() <br>
- <font color="green">Added</font>: AddKeyboardShortcut(), RemoveKeyboardShortcut(), SpinGadget(), WebGadget() <br>
- <font color="green">Added</font>: GetMenuItemState(), SetMenuItemState(), MenuHeight() <br>
- <font color="green">Added</font>: KeyboardReleased(), Trim(), Space() <br>
- <font color="green">Added</font>: SelectElement(), LineXY(), GetExtensionPart() <br>
- <font color="green">Added</font>: ! (XOR) and ~ (NOT) bitwise operands <br>
- <font color="green">Added</font>: Protected BASIC keyword <br>
- <font color="green">Added</font>: Shift+Tab keyboard shortcut to cycle gadget back <br>
- <font color="green">Added</font>: Debugger now detects when using a NULL pointer and a division by 0. <br>
<br>
- <font color="#924B72">Optimized</font>: 2DDrawing, Keyboard, Mouse, Sound and Sprite libraries (Command split) ! <br>
- <font color="#924B72">Optimized</font>: Plot() command when used with ScreenOutput() is 40 times faster (DirectX) <br>
<br>
- <font color="#006666">Updated</font>: PokeS() and PeekS() now have an optional Length parameter <br>
- <font color="#006666">Updated</font>: KeyboardPushed() can now have #PB_Key_All as parameter for any pushed keys <br>
- <font color="#006666">Updated</font>: FileSize() now returns -2 if the file is a directory <br>
- <font color="#006666">Updated</font>: WindowID() can have an optional #Window parameter <br>
- <font color="#006666">Updated</font>: All gadgets commands (added a 'Flags' optional parameter) which allows a full control over their look ! (See the each Gadget doc for more information) <br>
- <font color="#006666">Updated</font>: Plot(), Line(), Box(), Circle(), Ellipse() have now an optional color parameter. <br>
- <font color="#006666">Updated</font>: Debugger has some bug fixed. When a program stop, or the debugger quit all is cleaned correctly. 
-          This allows fullscreen game debugging easier as the screen close down before displaying the error. <br>
- <font color="#006666">Updated</font>: Sprite library debug routines. <br>
<br>
- <font color="orange">Changed</font>: Renamed StripLead() and StripTrail() to RTrim() and LTrim() for other BASIC compatibility <br>
- <font color="orange">Changed</font>: NetworkClientEvent(), CloseNetworkConnection() <br>
- <font color="orange">Changed</font>: CreateToolBar(): added 'WindowID' parameter <br>
- <font color="orange">Changed</font>: CreateMenu(): added 'WindowID' parameter <br>
- <font color="orange">Changed</font>: NetworkClientEvent() and NetworkServerEvent(): no more 'String' event: could be a possible exploit. <br>
- <font color="orange">Changed</font>: OpenWindowedScreen() x,y parameters take in count the window top and left border width. <br>
- <font color="orange">Changed</font>: ResizeWindow(), WindowWidth() and WindowHeight() now use inner area width/height to work with new OpenWindow() and skin support <br>
<br>
- <font color="red">Removed</font>: AttachToolBar(), DetachToolBar(), AttachMenu(), ReceiveNetworkString() <br>
<br>
- <font color="blue">Fixed</font>: FrameGadget() with other sunken and raised frames <br>
- <font color="blue">Fixed</font>: ListViewGadget() events <br>
- <font color="blue">Fixed</font>: FileSize() <br>
- <font color="blue">Fixed</font>: StopDrawing(), display under win9x got corrupt after lot of calls <br>
- <font color="blue">Fixed</font>: Debugger problems. <br>
- <font color="blue">Fixed</font>: AddGadgetItem() with ListIconGadget() (-1 position wasn't working) <br>
- <font color="blue">Fixed</font>: SpritePixelCollision() with clipped sprites <br>
- <font color="blue">Fixed</font>: Possible bug in Random() <br>
- <font color="blue">Fixed</font>: SpritePixelCollision(), only (0,0,0) transparent color worked <br>
- <font color="blue">Fixed</font>: InitSprite(), InitSound(), InitPalette(), InitKeyboard() don't display system request anymore if DirectX 7+ isn't found. <br>
- <font color="blue">Fixed</font>: RemoveGadgetItem() and ClearGadgetItemList when used with PanelGadget() <br>
- <font color="blue">Fixed</font>: PathRequester() default path on Win9x systems <br>
- <font color="blue">Fixed</font>: @linkedlist() with '.s' type now return correct list element pointer (instead of string pointer) <br>
- <font color="blue">Fixed</font>: ReadPreferenceString() was faulty in some cases <br>
- <font color="blue">Fixed</font>: Documentation: SaveImage(), ScreenID(), SelectedFontStyle() and SelectedFontColor() were missing <br>

</blockquote>
<p><b>6th May 2002 : Version 3.10</b></p><blockquote>





- <font color="green">Added</font>: Preference library: OpenPreferences(), CreatePreferences(), ReadPreferenceLong/Float/String(), WritePreferenceLong/Float/String() 
PreferenceComment(), PreferenceGroup() <br>
- <font color="green">Added</font>: Windows XP skinning support (See 'Compiler Options' window) <br>
- <font color="green">Added</font>: GadgetX(), GadgetY(), GadgetWidth(), GadgetHeight(), GetGadgetItemState(), SetGadgetItemState(), GetGadgetItemText(), SetGadgetItemText(), CountGadgetItems(), TrackBarGadget(), IPAddressGadget() <br>
- <font color="green">Added</font>: HideWindow(), RandomSeed(), MakeIPAddress(), IPAddressField() <br>
- <font color="green">Added</font>: MouseWheel(), CatchSprite(), SaveSprite() <br>
- <font color="green">Added</font>: RotateSprite3D(), ZoomSprite3D(), TransformSprite3D(), Sprite3DQuality(), Sprite3DBlendingMode() <br>
- <font color="green">Added</font>: EventType(): Return/Change/Focus can be detected in StringGadget(), ComboBox() and more <br>
- <font color="green">Added</font>: CatchImage(), CreatePack(), ClosePack(), NextPackFile(), AddPackFile(), AddPackMemory(), PackFileSize(), OpenPack() <br>
- <font color="green">Added</font>: DirectoryEntrySize(), DirectoryEntryAttributes() <br>
- <font color="green">Added</font>: Full compatibility with 'WindowBlinds' on WinXP which seems to broke the event handler ! <br>
<br>
- <font color="#924B72">Optimized</font>: PureLibraries (Only used commands included) : Image, Misc2, GadgetExtension, Requester, Sprite3D, Memory, Packer <br>
<br>
- <font color="#006666">Updated</font>: CompareMemoryString(): Added an optional 'Length' parameter. <br>
- <font color="#006666">Updated</font>: DisplayPopupMenu(): (x,y) are now optional <br>
- <font color="#006666">Updated</font>: ResizeGadget(): passing '-1' to one of the arguments make it ignored (very useful for resizable GUI) <br>
- <font color="#006666">Updated</font>: GetGadgetText() and TextGadgetText() now works with TreeGadget() and ListIconGadget() <br>
- <font color="#006666">Updated</font>: AddGadgetItem() now have an optional Image parameter. <br>
- <font color="#006666">Updated</font>: OpenWindow(): now add the border size automatically, to fix skinning problem under XP <br>
- <font color="#006666">Updated</font>: FileSize() now returns size for every files, even locked one <br>
<br>
- <font color="red">Removed</font>: InitGadget(): no more needed. <br>
- <font color="red">Removed</font>: DoubleClick() and EventMouseButtons(): Use EventType() instead <br>
- <font color="red">Removed</font>: OpenDefaultConsole(). Now OpenConsole() detects automatically if the program is in 'Console' or 'Windows' format. <br>
- <font color="red">Removed</font>: AddListIconGadgetItem() and AddTreeGadgetItem(): AddGadgetItem() is now used <br>
- <font color="red">Removed</font>: ExpandTreeGadgetItem() and TreeGadgetItemState(): Set/GetGadgetItemState() is now used <br>
<br>
- <font color="blue">Fixed</font>: Gadget events for ComboBox, ListIcon and Systray. <br>
- <font color="blue">Fixed</font>: Possible memory leaks with strings in particular cases <br>
- <font color="blue">Fixed</font>: Possible bug when using Procedures as callbacks <br>
- <font color="blue">Fixed</font>: Create3DSprite(): size was 1 pixel less <br>
- <font color="blue">Fixed</font>: Each window has now its own private class <br>
- <font color="blue">Fixed</font>: PlaySound(): debugger routine missing and little glitch at the end of playback <br>
- <font color="blue">Fixed</font>: ResizeGadget() with PanelGadget and some refresh problems <br>
- <font color="blue">Fixed</font>: FindString() on Win9x <br>
- <font color="blue">Fixed</font>: ExamineDirectory() bug on Win9x <br>
- <font color="blue">Fixed</font>: Module library, playback should work everywhere now <br>
- <font color="blue">Fixed</font>: SetGadgetText() for ListViewGadget() <br>
- <font color="blue">Fixed</font>: SelectedFontColor() <br>
- <font color="blue">Fixed</font>: Silly bug in DeleteElement() <br>
- <font color="blue">Fixed</font>: NewList xxxx() alone produced a linker error <br>
- <font color="blue">Fixed</font>: Bug when printing images <br>
- <font color="blue">Fixed</font>: Random() command (again !) <br>
- <font color="blue">Fixed</font>: ResizeImage() under Win9x <br>
- <font color="blue">Fixed</font>: IncludeBinary bug (only absolute path worked) <br>
- <font color="blue">Fixed</font>: Editor: Tab was badly handled. Little bug when pressing return. Minor coloring bug when pasting <br>

</blockquote>
<p><b>4 April 2002 : Version 3.00</b></p><blockquote>





- <font color="green">Added</font>: Library PureLibrary: OpenLibrary(), IsFunction(), CallFunction(), CloseLibrary() <br>
- <font color="green">Added</font>: Help PureLibrary:  OpenHelp(), CloseHelp() <br>
- <font color="green">Added</font>: Clipboard PureLibrary: ClearClipboard(), GetClipboardText(), GetClipboardData(), SetClipboardData(), SetClipboardText() <br>
- <font color="green">Added</font>: ElseIf <br>
- <font color="green">Added</font>: If a condition (If/While...) isn't finished before EndProcedure, the compiler display an error. <br>
- <font color="green">Added</font>: ToolBarToolTip() <br>
- <font color="green">Added</font>: SpritePixelCollision() <br>
- <font color="green">Added</font>: Timer PureLibrary (Thanks to Danilo): StartTimer(), EndTimer(), GetMinTimerResolution(), GetMaxTimerResolution() <br>
- <font color="green">Added</font>: ComDX PureLibrary (Thanks to Danilo): CallCOM(), CallDX() <br>
- <font color="green">Added</font>: Printer PureLibrary: NewPrinterPage(), PrinterOutput(), PrintRequester(), StartPrinting(), StopPrinting(), PrinterPageWidth(), PrinterPageHeight() <br>
- <font color="green">Added</font>: Variable command argument for any function <br>
- <font color="green">Added</font>: Declare and DeclareDLL to declare procedures before actual declaration <br>
- <font color="green">Added</font>: CopyMemoryString(), MemoryStringLength(), CompareMemory(), ReAllocateMemory(), CompareMemoryString() <br>
- <font color="green">Added</font>: CopyImage(), ResizeImage(), GrabImage() <br>
- <font color="green">Added</font>: MovieStatus(), MovieLength() <br>
- <font color="green">Added</font>: SoundVolume(), SoundPan(), SoundFrequency(), CatchSound() <br>
- <font color="green">Added</font>: FirstDatabaseRow(), PreviousDatabaseRow() <br>
- <font color="green">Added</font>: CreatePalette(), GetPaletteColor(), SetPaletteColor(), UsePalette() <br>
- <font color="green">Added</font>: RGB(), ReplaceString(), StrU(), StrF(), ValF() <br>
- <font color="green">Added</font>: HideGadget(), GadgetID() <br>
- <font color="green">Added</font>: Dutch catalog for the editor <br>
<br>
- <font color="#006666">Updated</font>: Brand new library architecture to allow to link ONLY needed commands to the final executable. For now, all the libraries 
aren't optimized to use it, but it will come, in a near future :). BTW, all libraries use the standard STDCALL format, so 
no argument reversed anymore. Old libraries are still fully compatible. <br>
- <font color="#006666">Updated</font>: StopSound(): Passing '-1' will stop playing all sounds. <br>
- <font color="#006666">Updated</font>: PlaySound(): Flags parameter is now optional <br>
- <font color="#006666">Updated</font>: Sort(): now a range can be specified (ex: from elements 20 to 50 of the array) <br>
- <font color="#006666">Updated</font>: Resident file: #VK_xx constants added, some structures fixed. <br>
<br>
- <font color="orange">Changed</font>: Internally, procedures parameters are now pushed in the right order. Warning, all the callback must be changed to reflect this. 
This also mean than DLL procedure parameters can be put in the right order. <br>
- <font color="orange">Changed</font>: InitSound() doesn't require a maximum sound param anymore <br>
- <font color="orange">Changed</font>: Renamed BackColour(), FrontColour() and  TransparentSpriteColour() to BackColor(), FrontColor() and  TransparentSpriteColor() <br>
<br>
- <font color="blue">Fixed</font>: Compiler crash when using constant string, more check to the preprocessor <br>
- <font color="blue">Fixed</font>: StartDrawing() bugs <br>
- <font color="blue">Fixed</font>: Random(), to have more randomized numbers. <br>
- <font color="blue">Fixed</font>: GetDatabaseString() when getting null values <br>
- <font color="blue">Fixed</font>: ExamineDirectory(): Failure on Win9x systems on special cases <br>
- <font color="blue">Fixed</font>: Resident problem. Now users residents are loaded. <br>
- <font color="blue">Fixed</font>: Editor bug, which prevents to type special characters (characters over 128 in the ASCII table) and some minors other <br>
- <font color="blue">Fixed</font>: A FPU bug which prevented OpenGL to work correctly <br>
- <font color="blue">Fixed</font>: 'Debug' command: now accept float and string functions without problem. <br>
<br>
- <font color="red">Removed</font>: Mr Skunk PureLibraries, as some was bugged but we don't have the source code to fix them. <br>

</blockquote>
<p><b>24 February 2002 : Version 2.95</b></p><blockquote>





Note:  This is a bug fix release before the major 3.0 version. Very few changes. <br>
<br>
- <font color="green">Added</font>: HtmlHelp support for search in the help + other goodies. Old HTML files can be safely removed. <br>
<br>
- <font color="blue">Fixed</font>: Compiler bugs (Float within structure array, XIncludeFile, 'a' constants in some rare case, Expression bug, constant duplication and Image library integration when using Sprite, Memory leaks in string procedures) <br>
- <font color="blue">Fixed</font>: LoadJPGSprite bug <br>
- <font color="blue">Fixed</font>: Editor colorize problem with normal text color <br>
<br>


</blockquote>
<p><b>27 January 2002 : Version 2.90</b></p><blockquote>





- <font color="green">Added</font>: DLL Creation ! <br>
- <font color="green">Added</font>: Constants can now be String or Float <br>
- <font color="green">Added</font>: Debug et DebugLevel commands with Debug window in the debugger. <br>
- <font color="green">Added</font>: Italian editor language by Yuri. <br>
<br>
- <font color="orange">Changed</font>: Variables, Arrays, LinkedList and Constants are now case insensitive. <br>
<br>
- <font color="blue">Fixed</font>: PathRequester(), OpenFileRequester(), SaveFileRequester() <br>
- <font color="blue">Fixed</font>: ExamineDirectory() tiny bug <br>
- <font color="blue">Fixed</font>: GetDatabaseFloat() <br>
- <font color="blue">Fixed</font>: Compiler crashing bug on NT4 Sp6a. <br>

</blockquote>
<p><b>13 January 2002 : Version 2.82</b></p><blockquote>





- <font color="green">Added</font>: PeekF(), PokeF() <br>
- <font color="green">Added</font>: Math library: ACos(), ASin(), ATan(), Pow(), Log(), Log10(), Round(), Cos(), Sin(), Tan(), Abs(), Sqr(), Int() <br>
- <font color="green">Added</font>: SpriteOutput(): Allow to use the 2DDrawing command on any sprites ! <br>
- <font color="green">Added</font>: #PB_WindowInvisible <br>
<br>
- <font color="blue">Fixed</font>: compiler bugs (a.l = Pow(), a = -16/variable) <br>
- <font color="blue">Fixed</font>: a bug in OpenDatabaseRequester() which prevents database opening with some ODBC drivers (MySQL...) <br>
- <font color="blue">Fixed</font>: FrontColour() bug which caused DX and whole system crashes. <br>
- <font color="blue">Fixed</font>: SaveImage(). Always save in 24-bit instead of 32-bit <br>
- <font color="blue">Fixed</font>: ListViewGadget() now use the exact height gadget, not a rounded one <br>
- <font color="blue">Fixed</font>: SysTrayIconToolTip() no more crash if specified text is over 64 characters <br>
- <font color="blue">Fixed</font>: ListIconGadget(): Don't destroy the icons after FreeGadget() <br>
- <font color="blue">Fixed</font>: ChangeListIconGadgetDisplay(): Refreshed automatically <br>
- <font color="blue">Fixed</font>: Window background color under Windows XP <br>
<br>
- <font color="orange">Changed</font>: StrF(Number) to StrF(Number, Precision) <br>

</blockquote>
<p><b>01 January 2002 : Version 2.80 (Happy New Year Release)</b></p><blockquote>


<u>Compiler:</u> <br>
- <font color="#006666">Updated</font>: Rewrote from scratch the compiler core: complex expression compliant <br>
- <font color="#006666">Updated</font>: Optimized the code output <br>
- <font color="green">Added</font>: /REASM compiler flag to allow source code reassembly after hand modifications <br>
- <font color="green">Added</font>: Possibility to use floats with API call. <br>
- <font color="blue">Fixed</font>: float support (comparison, procedure, Abs(), Sin() etc..) <br>
- <font color="blue">Fixed</font>: all known bugs <br>
<br>
<u>Libraries:</u> <br>
- <font color="green">Added</font>: Sprite3D library: Create3DSprite(), Display3DSprite(), Transform3DSprite(), Free3DSprite(), Start3D(), Stop3D() <br>
- <font color="green">Added</font>: SaveImage() <br>
- <font color="green">Added</font>: Debugger routine for all commands <br>
- <font color="blue">Fixed</font>: ExamineDirectory() <br>
- <font color="blue">Fixed</font>: OpenFile() (Read wasn't working) <br>
<br>
<u>Editor:</u> <br>
- <font color="green">Added</font>: QuickHelp for almost all commands <br>
- <font color="green">Added</font>: Procedure direct jump support <br>

</blockquote>
<p><b>28 November 2001 : Version 2.70</b></p><blockquote>





- <font color="green">Added</font>: ChangeSysTrayIcon(), SysTrayIconToolIip(), ExpandTreeGadgetItem(), TreeGadgetItemState() <br>
- <font color="green">Added</font>: DisableMenuItem(), GadgetToolTip(), StatusBarIcon() <br>
- <font color="green">Added</font>: UseGadgetList(), TransparentSpriteColor(), ClipSprite(), CopySprite(), GrabSprite() <br>
- <font color="green">Added</font>: ProgramParameter() <br>
- <font color="green">Added</font>: Thread library <br>
- <font color="green">Added</font>: '!' support to include raw ASM command in the code source (directly managed by NAsm) <br>
- <font color="green">Added</font>: Multilevel (100) Undo/Redo in the editor <br>
- <font color="green">Added</font>: Colored syntax when pasting (Yes ;-) <br>
<br>
- <font color="#006666">Updated</font>: StatusBarText(): 2 flags for alignment (Center &amp; Right) <br>
- <font color="#006666">Updated</font>: ReadData() now returns the number of byte read <br>
- <font color="#006666">Updated</font>: The debugger is now an high priority thread (much more responsible) <br>
<br>
- <font color="orange">Changed</font>: PlaySound(), Added a flag to play looping <br>
- <font color="orange">Changed</font>: SetStatusBarText() -&gt; StatusBarText() <br>
- <font color="orange">Changed</font>: InitSprite(): removed the sprite parameter <br>
<br>
- <font color="blue">Fixed</font>: DatabaseQuery(), GetPathPart(), LoadSprite() (Can now load sprite of any size) <br>
- <font color="blue">Fixed</font>: CloseScreen(): can now switch FullScreen/Windowed without any problems. Cool. <br>
- <font color="blue">Fixed</font>: Compiler bugs (MultiArray in Procedures, Read data in Procedures) <br>
- <font color="blue">Fixed</font>: Flickering in the editor <br>

</blockquote>
<p><b>5 November 2001 : Version 2.60</b></p><blockquote>





- <font color="green">Added</font>: CopyMemory(), CatchJPEGSprite(), LoadJPEGSprite(), WindowMouseX(), WindowMouseY() <br>
- <font color="green">Added</font>: MovieSeek(), MovieInfo(), DrawImage(), ScreenOutput(), WindowOutput(), ImageOutput(), CreateImage() <br>
- <font color="green">Added</font>: Database library <br>
- <font color="green">Added</font>: Compressor library <br>
- <font color="green">Added</font>: Console library (By Sylvain) <br>
- <font color="green">Added</font>: Possibility to use the 2DDrawing library directly on Game screens <br>
- <font color="green">Added</font>: XOR and Fill/Outline mode for 2D Drawing functions <br>
- <font color="green">Added</font>: -1 feature to FreeMemory() to free all banks in one call. <br>
- <font color="green">Added</font>: New flag for RunProgram(): run synchronously and possibility to hide it. <br>
- <font color="green">Added</font>: Powerful ASM Monitor in the debugger (in a BASIC language !) <br>
- <font color="green">Added</font>: Variable viewer in the debugger <br>
<br>
- <font color="orange">Changed</font>: All old MemoryBank functions renamed. <br>
- <font color="orange">Changed</font>: ReadMemory() and WriteMemory renamed -&gt; ReadData(), WriteData() (For better logic with other commands) <br>
- <font color="orange">Changed</font>: The PureBasic library format (see the SDK for more info) <br>
- <font color="orange">Changed</font>: DrawingOutput() has been renamed to StartDrawing() and doesn't take a WindowID() anymore (but WindowOutput(), ScreenOutput() or ImageOutput() <br>
- <font color="orange">Changed</font>: Eof() take one parameter now. <br>
<br>
- <font color="blue">Fixed</font>: StopModule() (Removed the #Module) parameter <br>
- <font color="blue">Fixed</font>: A small compiler bug <br>
- <font color="blue">Fixed</font>: PlayMovie()   <br>
- <font color="blue">Fixed</font>: Debugger while using ASM commands inside PureBasic <br>
- <font color="blue">Fixed</font>: Clipboard PASTE within the editor doesn't change the font anymore <br>

</blockquote>
<p><b>23 September 2001 : Version 2.50</b></p><blockquote>





- <font color="green">Added</font>: Mouse library <br>
- <font color="green">Added</font>: Movie library <br>
- <font color="green">Added</font>: Sort library <br>
- <font color="green">Added</font>: Procedure address (@procedurename()) <br>
- <font color="green">Added</font>: support for 'Console' executable format <br>
- <font color="green">Added</font>: DisplayTranslucentSprite(), DisplayAlphaSprite(), DisplayShadowSprite(), DisplayRGBFilter(), ChangeAlphaIntensity(), ClearScreen() 
OpenWindowedScreen(), DisplaySolidSprite(), CloseScreen(), SetFrameRate(), IsScreenActive(), StartSpecialFX(), StopSpecialFX(), ResizeGadget() 
JoystickAxisX(), JoystickAxisY(), ChangeGamma(), SetWindowCallback(), Red(), Green(), Blue() <br>
<br>
- <font color="orange">Changed</font>: LoadSprite() <br>
- <font color="orange">Changed</font>: DisplayPalette (Removed the screen argument) <br>
- <font color="orange">Changed</font>: ExamineJoystick() <br>
- <font color="orange">Changed</font>: OpenScreen (added Text$ parameter) <br>
- <font color="orange">Changed</font>: FontRequester (added initial fontname and size) <br>
- <font color="orange">Changed</font>: FrameGadget (Added a border style flag) <br>
<br>
- <font color="blue">Fixed</font>: big bugs in DirectX routines (Sprite, Keyboard, Movie). Now it multitasks very well ! <br>
- <font color="blue">Fixed</font>: icon support for ToolBar and Image library <br>
- <font color="blue">Fixed</font>: SelectedFontName() <br>
- <font color="blue">Fixed</font>: ClearGadgetItemList() when used with TreeGadget() <br>
- <font color="blue">Fixed</font>: LoadFont() (Incorrect YSize) <br>
<br>
<u>Editor:</u> <br>
- <font color="green">Added</font>: optional Auto-save before compiling <br>
- <font color="green">Added</font>: Any font support <br>
- <font color="green">Added</font>: Enable/Disable syntax coloration <br>
- <font color="green">Added</font>: 2 new components for coloring: 'Normal Text' and 'Procedures/Commands' <br>
- <font color="green">Added</font>: Real-time language, font, color changing <br>
- <font color="green">Added</font>: new About window, much better ;-) <br>
<br>
- <font color="#006666">Updated</font>: ultra-fast syntax highlighting when loading the source file <br>
- <font color="#006666">Updated</font>: syntax highlighting behavior fixed and changed (much better) <br>

</blockquote>
<p><b>1 August 2001 : Version 2.40</b></p><blockquote>





- <font color="green">Added</font>: Data support commands: Read, Restore, Data, DataSection, EndDataSection <br>
- <font color="green">Added</font>: Float number support (early stage) <br>
- <font color="green">Added</font>: MemoryBank library <br>
- <font color="green">Added</font>: StatusBar library <br>
- <font color="green">Added</font>: Image library <br>
- <font color="green">Added</font>: Systray library <br>
- <font color="green">Added</font>: lot of new commands: EventLParam(), EventWParam(), ListIndex(), ListCount() and ChangeCurrentElement() 
ToolBarImageButton(), EventMouseButton(), UseDirectory() <br>
- <font color="green">Added</font>: CreatePopupMenu() and DisplayPopupMenu() <br>
- <font color="green">Added</font>: TreeGadget(), ImageGadget(), ButtonImageGadget(), AddTreeGadgetItem() <br>
- <font color="green">Added</font>: ListIconGadget(), AddListIconGadgetItem(), ChangeListIconGadgetDisplay(), AddGadgetColumn() <br>
<br>
- <font color="orange">Changed</font>: the default type from 'Word' (16-bit) to 'Long' (32-bit) <br>
- <font color="orange">Changed</font>: WaitWindowEvent()/WindowEvent() returns all Windows events ! <br>
- <font color="orange">Changed</font>: ComboBoxGadget(), PanelGadget() and ListViewGadget() (removed the useless Text$ parameter) <br>
- <font color="orange">Changed</font>: ExamineDirectory() -&gt; Number added to allow to examine several directories at the same time <br>
<br>
- <font color="blue">Fixed</font>: CopyFile() (Overwrite doesn't work) <br>
- <font color="blue">Fixed</font>: FrontColour() (Text colour doesn't change..) <br>
- <font color="blue">Fixed</font>: GetGadgetState(), SetGadgetState() and RemoveGadgetItem() to support PanelGadget <br>
<br>
- <font color="red">Removed</font>: InitWindow(), InitRequester(), InitToolBar(), InitFont(), InitFile() and InitMenu() (No more needed...) <br>

</blockquote>
<p><b>17 May 2001 : Version 2.30</b></p><blockquote>





- <font color="green">Added</font>: to editor: Drag&amp;Drop on the main window, auto registry support for .pb files, auto indent, 
Tab/Shift+Tab when a block is selected to indent easily <br>
- <font color="green">Added</font>: tons of new commands: GetGadgetState(), SetGadgetState(), AddGadgetItem(), RemoveGadgetItem(), ClearGadgetItemList() 
PanelGadget(), ClosePanelGadget(), TextGadget(), SpritesCollision(), Delay(), OptionGadget(), FrameGadget() 
Loc(), PeekW/B(), PokeW/B(), GetPathPart(), GetFilePart(), RunProgram(), DoubleClick(), PathRequester() <br>
- <font color="green">Added</font>: 'Tab' support on Gadget lib. <br>
- <font color="green">Added</font>: compiler directives: CompilerIf/Else/Endif, CompilerSelect/Case/Default/EndSelect <br>
- <font color="green">Added</font>: the CD-Audio library <br>
- <font color="green">Added</font>: the FileSystem library <br>
- <font color="green">Added</font>: a built-in ICON linker (no more need GoRC) <br>
<br>
- <font color="#924B72">Enhanced</font>: Improved the debugger (step-by-step now works perfectly) <br>
- <font color="#924B72">Enhanced</font>: Optimized the generated executable (smaller and faster) <br>
- <font color="#924B72">Enhanced</font>: Full rewrite of the compiler expression processor core <br>
- <font color="#924B72">Enhanced</font>: Reduced the compiler and editor size (90kb instead 148kb and 33kb instead of 96kb) <br>
- <font color="#924B72">Enhanced</font>: Tons of little improvements and bug fixes too long to enumerate <br>
<br>
- <font color="blue">Fixed</font>: some nasty bugs in the compiler <br>
<br>
- <font color="orange">Changed</font>: LSR, LSR to &lt;&lt; and &gt;&gt; respectively <br>
- <font color="orange">Changed</font>: AddComboBoxItem and AddListViewItem() to AddGadgetItem() <br>

</blockquote>
<p><b>25 March 2001 : Version 2.20</b></p><blockquote>





- <font color="green">Added</font>: debugger runtime support for all pure libraries. A program no more crashes so easily. It's much 
easier now to catch up bugs ! <br>
- <font color="green">Added</font>: NT4.0 support for multimedia libraries (Sprite, Palette, Sound &amp; Keyboard), which allows the development 
of games or multimedia applications running on WinNT4 too ! <br>
- <font color="green">Added</font>: some new functions : Lof(), ReadMemory(), WriteMemory(), PeekS(), PokeS(), NetworkClientEvent(), SetGadgetFont(), WaitWindowEvent(), FileSeek() <br>
- <font color="green">Added</font>: a brand new Module library to allow an easy replay of Protracker, Fastracker or Impulse tracker 
modules. <br>
- <font color="green">Added</font>: project settings save for each file (Executable name, Compiler options etc...) <br>
- <font color="green">Added</font>: preference window to customize the editor easily (color, default directory etc..) <br>
- <font color="green">Added</font>: multi-language support for the editor (english, french and german) <br>
- <font color="green">Added</font>: icon (.ico) support when creating an executable ! <br>
- <font color="green">Added</font>: Win32 help support (when pressing F1 on a windows function) <br>
<br>
- <font color="green">Updated</font>: documentation <br>
<br>
- <font color="blue">Fixed</font>: fixed the compiler a lot, much reliable now. <br>

</blockquote>
<p><b>26 February 2001 : Version 2.10</b></p><blockquote>





- <font color="green">Added</font>: the debugger to walk easy trough a program. It features step-by-step, stop, 
continue, quit (useful to quit an infinite loop...) and can be invoked and controlled 
via the source code with the following commands: CallDebugger, EnableDebugger, DisableDebugger <br>
- <font color="green">Added</font>: new commands: ListViewGadget(), AddListViewItem(), GetGadgetText(), SetGadgetText(), PeekS(), SizeOf() <br>
- <font color="green">Added</font>: Multi-language to the editor (French, German, English) <br>
- <font color="green">Added</font>: Microsoft Windows �resident file containing all the constants and structures needed for easy OS 
programming under PureBasic. <br>
<br>
- <font color="#924B72">Improved</font> the editor a lot: contextual help (F1 on a keyword), Goto, Compiler Options, much better 
syntax highlighting, '.prefs' file <br>
<br>
- <font color="blue">Fixed</font>: lot of bugs and improved the whole stability <br>

</blockquote>
<p><b>17 December 2000 : Version 2.00 - Final release</b></p><blockquote>





- <font color="green">Added</font>: 2D Drawing library <br>
<br>
- <font color="blue">Fixed</font>: all know bugs, and some major <font color="#924B72">enhancements</font> 

</blockquote>
<p><b>28 November 2000 : Version 2.00 PR 3</b></p><blockquote>





- <font color="green">Added</font>: Requester library <br>
- <font color="green">Added</font>: ToolBar library <br>
- <font color="green">Added</font>: Dedicated editor (syntax coloring and direct access to compiler !) <br>
<br>
- <font color="blue">Fixed</font>: DirectX related bugs <br>

</blockquote>
<p><b>12 November 2000 : Version 2.00 PR 2</b></p><blockquote>





- <font color="green">Added</font>: Sprite library <br>
- <font color="green">Added</font>: Joystick library <br>
- <font color="green">Added</font>: Keyboard library <br>
- <font color="green">Added</font>: Sound library <br>
- <font color="green">Added</font>: Network library <br>
- <font color="green">Added</font>: Palette library <br>
<br>
- <font color="blue">Fixed</font>: Numerous bugs. Thanks to all bug reporters :) 

 

</blockquote>
<p><b>22 October 2000 : Version 2.00 PR 1</b></p><blockquote>





- <font color="green">Inition</font>: First public release of PureBasic x86. For testing purpose only  <br>
<br>



</body></html>